aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@users.noreply.github.com>2018-08-10 15:57:52 +0200
committerGravatar GitHub <noreply@github.com>2018-08-10 15:57:52 +0200
commit152c413224a73be89fe83f4de3adf5530566b331 (patch)
treea39c4fb1401ea59fa5db8c4197c0431c4ac13e36 /doc
parent7faa3fecad62580fd0a644bb814e1b488ef6248b (diff)
Improvements to ssl-performance.md
Diffstat (limited to 'doc')
-rw-r--r--doc/ssl-performance.md19
1 files changed, 13 insertions, 6 deletions
diff --git a/doc/ssl-performance.md b/doc/ssl-performance.md
index 2604e26a80..176c8d8f24 100644
--- a/doc/ssl-performance.md
+++ b/doc/ssl-performance.md
@@ -2,28 +2,35 @@
The SSL requirement of gRPC isn't necessarily making it easy to integrate. The HTTP/2 protocol requires ALPN support, which is a fairly new handshake protocol only supported by recent implementations.
-As a result, we've tried hard to provide a smooth experience to our users when compiling and distributing gRPC, but this may come at performance costs due to this. More specifically, we will sometime build the SSL library by disabling assembly code, which can impact performances by an order of magnitude when processing encrypted streams.
+As a result, we've tried hard to provide a smooth experience to our users when compiling and distributing gRPC, but this may come at performance costs due to this. More specifically, we will sometime build the SSL library by disabling assembly code
+(by setting the `OPENSSL_NO_ASM` option), which can impact performance by an order of magnitude when processing encrypted streams.
-Build system | Condition | Platform | Uses assembly code
+## gRPC C++: Building from Source
+
+Build system | Condition | Platform | Uses assembly optimizations
---|---|---|--
Makefile | with OpenSSL 1.0.2 development files | all | :heavy_check_mark:
Makefile | all other cases | all | :x:
Bazel | | Linux | :heavy_check_mark:
Bazel | | MacOS | :heavy_check_mark:
Bazel | | Windows | :x:
-CMake | | Windows | :x:
-CMake | | all others | :heavy_check_mark:
+CMake | boringssl from submodule (default) | all | :x:
+CMake | pre-installed OpenSSL 1.0.2+ (`gRPC_SSL_PROVIDER=package`) | all | :heavy_check_mark:
+## Other Languages: Binary/Source Packages
In addition, we are shipping packages for language implementations. These packages are source packages, but also have pre-built binaries being distributed. Building packages from source may give a different result in some cases.
-Language | From source | Platform | Uses assembly code
+Language | From source | Platform | Uses assembly optimizations
---|---|---|---
+C# | n/a | all | :x:
Node.JS | n/a | Linux | :heavy_check_mark:
Node.JS | n/a | MacOS | :heavy_check_mark:
Node.JS | n/a | Windows | :x:
Electron | n/a | all | :heavy_check_mark:
-Ruby | No | all | :x:
+ObjC | Yes | iOS | :x:
PHP | Yes | all | Same as the `Makefile` case from above
PHP | No | all | :x:
Python | n/a | all | :x:
+Ruby | No | all | :x:
+