gpt4 book ai didi

python - ZMQ 上下文套接字创建在新计算机上慢得多

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:17 26 4
gpt4 key购买 nike

这最初出现在 Python 中,但后来被复制到 C++ 中。这是提取并复制我的新笔记本电脑上的行为的单元测试。这些只是本地套接字连接。

def test_zmq_publisher_duration(self):
max_duration = 1.0
t0 = time.time()
socket = zmq.Context.instance().socket(zmq.PUB)
duration = time.time() - t0
print(socket)
self.assertLess(duration, max_duration, msg="socket() took too long.")

在其他计算机上,以及在我的旧笔记本电脑上,这只需要 几分之一秒 即可运行。但是,在我的新笔记本电脑(功能强大的 Dell Precision 7730)上,这需要大约 44 秒。创建 zmq.SUB(订阅者)套接字时,我得到了类似的结果。

如果我进入 socket() 调用,消耗所有时间的两个语句如下:

zmq/sugar/context.py
class Context
def instance(cls, io_threads=1):
...
cls._instance = cls(io_threads=io_threads)
...

def socket(self, socket_type, **kwargs)
...
s = self._socket_class(self, socket_type, **kwargs)
...

我很困惑,也很困惑。笔记本电脑上的其他一切似乎都很好。也许我以某种稍微不同的方式pip 安装 我的依赖模块?以前安装的 zmq 模块与 pyzmq 是否会导致问题?也许是我们 IT 部门的笔记本电脑设置中的某些东西?我尝试过以管理员身份运行,从 PyCharm 中运行,从命令行运行,并在运行时拔下网络电缆。

我对 Python 和 ZMQ 比较陌生,但我们已经在这个项目上开发了几个月,没有出现任何性能问题。在生产代码中,我们有一个包含大部分发布/订阅架构的 MessageBroker 类。上面的单元测试是通过简单地从我们的 MessageBroker.Publisher 构造函数(它创建套接字)中拉出第一行重要的代码来创建的。尽管在这台计算机上创建套接字的速度很慢,但在创建套接字后,我们的应用程序仍会启动并正常运行。启动应用程序仅需 7 分钟。

我怀疑 Ed 的调试法则:“行为越奇怪,错误就越愚蠢。”

最佳答案

这显然是 Windows 10 或笔记本电脑固件问题。 IT 部门推送了一些更新,第二天一切正常。以下是根据事件查看器安装的项目:

  • 已安装 KB4456655:适用于 Windows 10 版本 1803 的服务堆栈更新:2018 年 9 月 11 日(稳定性改进)
  • 已安装 KB4462930:Adobe Flash Player 更新
  • 已安装 KB4100347:Intel 微代码更新
  • 已安装 KB4485449:Windows 10 v1803 的服务堆栈更新 - 2 月 12 日
  • 已安装 KB4487017:(与 KB4485449 的描述相同)
  • 已安装 KB4487038:Adobe Flash Player 安全更新

关于python - ZMQ 上下文套接字创建在新计算机上慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55033082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com