【发布时间】:2012-08-16 09:14:45
【问题描述】:
我构建了一个多线程 c++ 应用程序,该应用程序的核心是一个时间敏感的操作,通常需要大约 50 毫秒,我最近看到了一个非常奇怪的行为,也许你们中的一个可以帮助我弄清楚.
我在 root 帐户下运行应用程序,当我从 debian box 本地运行它时,时间敏感的主要功能大约需要 300-400 毫秒。例如,如果我使用另一台机器,SSH 进入原始 debian 机器并从 ssh 终端远程运行应用程序,同样的时间敏感操作大约需要 50 毫秒。
基本上我在同一台机器上运行相同的应用程序。唯一的区别是第一个是在本地运行,第二个是远程运行,但相同的进程仍然在同一用户帐户下的同一台机器上运行,这就是为什么我无法理解我如何看到这种巨大的性能差异。
如果有人对可能发生的事情有任何想法,我将非常感激。
【问题讨论】:
-
打印的输出是否很多?可能 ssh 以不同的方式缓冲输出,允许应用程序运行而不会阻塞?
-
我正在打印一些输出,但它就像 50-60 行,每次操作完成时,会产生那种不同。
-
有可能。您可以作为测试尝试将输出重定向到文件或 /dev/null 并查看差异是否仍然存在,然后至少排除某些东西或给您一些东西看?
-
你是对的,我将输出重定向到 /dev/null 并且现在看到性能提升。非常感谢你的线索。我应该考虑一下的。
标签: c++ performance ssh debian