我使用delphi xe6和双核。
在我以前的问题中,许多人回答使用多线程来分散核心负载。谢谢。
我编码了一个超负荷的样本。在此示例中,我没有使用多线程,但是负载分散了。
请让我知道在没有多线程编码的情况下负载分散的原因,并且在计算过程中cpu的使用限制在50%左右吗?
如果我在xe7中使用tParallel.For,性能(特别是cpu的使用)会更好吗?
永远谢谢
如果您有两个内核以及一个受CPU约束的单线程程序,那么您应该期望系统的平均CPU使用率约为50%,即100%除以2个CPU。
我没有阅读图片中显示的用户界面语言,因此无法阅读标签,但它似乎只是在说明我所描述的内容。最下面的两个图平均后得出最上面的图。您的程序可能不只在单个CPU上运行;而是在一个CPU上运行。操作系统可以自由安排您的程序在每个时间段在任一内核上运行。
您的代码不能很好地并行化;它仍会更新窗口标题中的单个共享资源。您应该期望并行运行时的性能大致等于更差的性能:您将看到两倍的CPU使用率,但所需的时间却是原来的一半。但是,由于多个线程对窗口标题的争用,它可能会变得更糟。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句