为什么要求苛刻的过程不使用另一个核心?


1

我有一台较旧的Core i5笔记本电脑,有时会玩Dota 2游戏。对我的处理器的要求很高。但是,当我退出游戏并查看系统资源图(在Taks Manager中)时,看到处理器使用率恒定为50%。

为什么这个要求苛刻的过程不会在没有使用情况的另一个内核上运行?

谢谢。


该软件必须被编程为使用多个线程。直到最近十年,处理器才能够一次处理多个指令(线程)。
拉姆猎犬,2014年

Answers:


4

即使多核处理器已经存在了一段时间,但仍没有编写许多应用程序来利用SMP(对称多处理)优势。这可能是由于在设计和调试中尝试利用SMP时引入的复杂性。维基百科解释

...当[单线程]完成所有繁重的工作,[或当它无法]在多个内核之间平均平衡工作时,多核体系结构对应用程序几乎没有好处。

对真正的多线程代码进行编程通常需要复杂的线程协调,并且由于线程之间共享的数据的处理交织在一起(线程安全),因此容易引入细微而难以发现的错误。因此,此类代码在中断时比单线程代码更难调试。

与许多游戏一样,Dota 2似乎是那些不利用SMP的应用程序之一。


1

您是否在单个内核上看到50%的处理器使用率?在Windows上,您可以设置一个称为亲和力的属性,如果设置了该亲和力,则告诉Windows将一个进程保留在一个或特定的内核上。也许您正在运行的一个或多个进程具有此设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.