我在两个不同的计算环境中运行相同的C++实现,其中第一个是具有48 Gb内存的Xeon2.3 GHz,另一个是具有3GB内存的Core2 Duo 2.53 GHz。对于编译,我使用了具有类似选项的g++。我应该指出,第一个系统是64位红帽,第二个是32位Ubuntu。此外,g++版本是不同的,在第一个系统中安装了4.1.2版本,在第二个系统版本中安装了4.6.1版本。
当我运行代码时,两个系统都返回完全相同的解决方案。对于每个系统,时间结果如下。
系统-1:
实0m19.623 s
用户2m13.588s
sys 0m3.118 s
系统-2:
真0m11.229s
用户0m11.785 s
sys 0m1.496s
我有两个问题。
发布于 2012-05-27 22:58:00
问题解决了。我在我的应用程序中使用一个共享库。我意识到这个共享库在其默认设置中运行多线程。我把它设为单线程,然后在两个系统中都能正常工作。
发布于 2012-05-14 13:30:50
为什么用户时间很长?
如果你有两个核心,两个都在用户模式下运行1分钟,你得到2用户分钟。
这表明您的代码在多线程上表现不佳。比如忙着等待锁争用,或者缓存争用可能是原因。
https://stackoverflow.com/questions/10584205
复制相似问题