假设问题。
我写了1个多线程代码,用来组成8个线程,在不同的线程上处理数据并完成该过程。我还在代码中使用信号量。但它在不同的机器上给了我不同的执行时间。 这是显而易见的!!
相同代码的执行时间:
在 Intel(R) Core(TM) i3 CPU 机器上:36 秒
在 AMD FX(tm)-8350 八核处理器机器上:32 秒
在 Intel(R) Core(TM) i5-2400 CPU 机器上:16.5 秒
所以,我的问题是,
我是否缺少任何类型的设置/变量/命令/开关,这些设置/变量/命令/开关可以在较高的机器中启用,但在较低的机器中无法启用,这使得较高的机器执行时间更快?或者,只是处理器的原因,因此存在时间差异。
任何类型的帮助/建议/评论都会有帮助。
操作系统:Linux(Centos5)
最佳答案
多线程基准测试应通过大量统计采样来执行(例如:每台机器大约 50 次实验)。此外,程序运行的“环境”也很重要(例如:firefox是否同时运行)。
此外,根据资源消耗,运行时间可能会有所不同。换句话说,如果没有更完整地描述您的实验条件,就不可能回答您的问题。
我从个人实验中得出的一些观察结果:
巨大的内存消耗可能会改变结果,具体取决于计算机上的交换设置。
在相同条件下安装相同操作系统的两台“相同”机器可能会显示不同的结果。
当总吞吐量小于 5 分钟时,结果显得相当随机。
等等
关于c - 相同的多线程代码在不同处理器上的时间差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19269110/