grpc调用时间减少了开销



我在java应用程序中使用gRPC(非阻塞存根(,两个函数调用之间的响应时间约为5-8ms。我想减一点。你有什么建议?有可能吗?

gRPC Java开销通常以µs(sub-ms(为单位进行测量。如果你看到的是毫秒的延迟,关于原因的一般预期:

  1. 服务延迟为毫秒。在服务器上,测量服务响应所需的时间。许多服务处理请求需要几毫秒的时间。

  2. 网络延迟为毫秒。从一台主机到另一台主机运行ping,以获得通信性能的下限。(如果你有这样的兴趣,netperf tcp_r是一个更好的选择。(

  3. 基准测试没有使JVM预热。当类加载发生时,第一个RPC将非常非常慢。之后,JVM将在JIT开始编译代码之前使用解释模式一段时间。JIT将逐步优化代码。因此,请确保有30秒以上的持续RPC预热期。

  4. Channel没有被重用。DNS查找、创建网络连接和执行TLS握手会增加延迟。但是,如果您将Channel与多个RPC一起重用,那么以后的RPC将不需要支付这些延迟成本。

最新更新