微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何使用 Python gRPC

如何解决我如何使用 Python gRPC

作为问题的答案:how-do-i-handle-streaming-messages-with-python-grpc,@Nathaniel 提供了处理请求和响应的解决方案。

但是当我想统计每个响应的处理时间时,它看起来不太正确。例如,我在 stream_iter 中睡眠了 200 毫秒,但 tr 甚至不到 200 毫秒。我的代码

t0 = time.time()
for rsp in stub.Process(stream_iter()):
    tr = (time.time() - t0) * 1000
    print(tr)
    t0 = time.time()
...

所以我想知道如何计时?

解决方法

很难判断给定的片段有什么问题。我建议创建一个完整的复制案例作为 https://github.com/grpc/grpc/issues 的问题。

这里有一些可能性:

  1. 流量控制,客户端/服务器可能会缓冲它收到的消息,因此在某些情况下您可能会看到小爆发。
  2. 迭代器中的错误,例如,我们想在 __next__ 中休眠,但可能不小心在 __iter__ 中注入了 sleep。

通常,如果您调整规模和吞吐量,噪音应该会消失。您可以用来衡量每个响应的延迟时间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?