gpt4 book ai didi

Linux 与 Win 运行时计时

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:07 24 4
gpt4 key购买 nike

我有一个从 Windows 移植到 Linux 的应用程序。现在相同的代码在 VS C++ 和 g++ 上编译,但是在 Win 上运行和在 Linux 上运行时在性能上存在差异。此应用程序的范围是缓存。它是服务器和客户端之间的一个节点,它在一个列表中缓存客户端请求和服务器响应,这样任何其他客户端发出的请求已经被服务器处理过,这个节点将响应而不是将其转发到服务器。

当此节点在 Windows 上运行时,客户端会在大约 7 秒内获得所需的一切。但是当同一节点在 Linux (Ubuntu 9.04) 上运行时,客户端会在 35 秒内启动。每个测试都是从头开始的。我试图理解为什么会出现这种时间差异。一个奇怪的场景是当节点在 Linux 上运行但在由 Win 托管的虚拟机中时。在这种情况下,加载时间约为 7 秒,就像在 native 运行 Win 一样。所以,我的印象是网络存在问题。

该节点使用 UDP 协议(protocol)发送和接收网络数据,并使用 boost::asio 作为实现。我尝试更改所有受支持的套接字标志,更改缓冲区大小,但没有任何效果。

有人知道为什么会发生这种情况,或者任何与 UDP 相关的网络设置可能会影响性能吗?

谢谢。

最佳答案

如果您怀疑存在网络问题,请进行网络捕获(Wireshark 非常适合此类问题)并查看流量。

根据网络捕获或分析器的输出找出时间花在了哪里。一旦您知道您已经完成了解决方案的一半。

关于Linux 与 Win 运行时计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1565918/

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