为什么即使我的应用程序吃完了(尽管它占用了40%的CPU(但是30-40%的CPU仍然保持空闲)),但为什么我的CPU却永远也不会满负荷运行呢?
这是否意味着:
- 有一种方法可以强制CPU以100%运行
- 这样制造CPU,我唯一能做的就是购买新硬件。
- 限制在于应用程序,并且即使使用更好的CPU,延迟也不会得到改善。(假设应用程序是完美的,我要问的是软件是否以此方式运行?)
- 还有别的
为什么即使我的应用程序吃完了(尽管它占用了40%的CPU(但是30-40%的CPU仍然保持空闲)),但为什么我的CPU却永远也不会满负荷运行呢?
这是否意味着:
Answers:
您可能正在运行单线程应用程序,该应用程序最多只能使用一个CPU内核。由于一个内核的100%不足多核CPU容量的100%,因此总 CPU利用率不会达到100%。
您可以通过在任务管理器中查看各个核心利用率来确认这一点。寻找接近最大利用率的单核。
您尚未指定操作系统。因此答案将是常见的。
应用程序可能由于各种原因而受到限制。瓶颈可能在:
还有更多原因,并不常见。
因此,请查看您的系统资源,并尝试分析系统中的其他瓶颈,而不仅仅是CPU总负载。
通常,当人们谈论计算机运行缓慢时,我会提到灰尘。作为拥有15年专业经验的前计算机技术人员,我发现仅吹尘便可以显着提高性能。
我不是在说稀薄的尘埃,几乎不是察觉到的尘埃,而是在说是大块或什至是阻止正常气流的垫子。我已经看到散热器上基本上有一个灰尘过滤器,而不是一个实际的过滤器。这会阻止大量的空气冷却CPU。这样清除灰尘将使风扇立即安静下来,并使组件的使用寿命更长。热火杀死了我要修理的许多计算机。
遵循散热问题的想法,您也可以尝试使用更好的散热膏。大多数处理器附带的白色cr @ p就像导热膏的Yugo。我使用北极银(Arctic Silver),但是比这更好的东西。北极银大约是保时捷(使用汽车评级表),但是那里有法拉利和超级跑车的品种。
处理器过热时趋向于减慢速度。这是物理上的事情,也是编程到许多CPU中的“自我保护”。我不知道它是否仍会在任务管理器上显示100%或是否会显示40%(如您所见),但是当CPU尝试让散热器和风扇“跟上来。”
可能会减慢CPU速度的另一件事是GPU。如果您正在运行图形密集型游戏或实用程序(例如CAD),则GPU可能会阻碍CPU。获得更好的视频卡可能是要看的东西。另外,使用错误的右卡可能会阻碍您前进。游戏卡(通常)并非设计为可与CAD以及工作站卡一起使用,并且工作站卡(通常)也无法很好地进行游戏。有的有,但大多数没有。
正如@Jaroslav Kucera提到的,它可能与磁盘相关。大量击中HD可能会减慢您的速度。我通常运行多个驱动器。其中一个专门用于OS,另一个用于软件,Windows页面文件,个人文件等。除了不必担心在操作系统发生故障时备份个人数据外,拥有多个HD可以大大分散工作量。同时读取和写入同一磁盘会严重降低HD的速度。使用SHD可以缓解这种情况,但不能完全缓解。众所周知,Photoshop和视频编辑软件会严重影响HD。从一个高清硬盘读取然后输出到第二个高清硬盘是必经之路。这也有助于延长HD的使用寿命。我还对硬盘进行主动散热。自15年前我在其上安装风扇和散热器以来,我还没有杀死过硬盘。谷歌他们,他们是便宜的保险。
信不信由你,您的PSU可能也会减慢您的速度。如果您没有足够的功率(或者您的PSU太旧或便宜,价格过高的中国POS),则可能会出现性能问题。我亲眼目睹了不稳定的PSU可以解决奇怪的操作系统问题。您正在寻找电压和安培,因此,如果按照这种方法操作,请确保它们都符合PSU上的规格,并确保它们满足或超过您的电源需求。如果您的组件总功率为500瓦,而您却给了475瓦,那就不好了。我建议将要求提高约20%,以使PSU变老(并降低功率),而其他组件变老(并要求动力),因此您不必急于购买新的PSU。
包括此处的其他答案,还有更多原因导致计算机运行缓慢。除了PSU选项外,当我是计算机技术人员时,我谈论的内容很常见。进行基准测试和其他测试是您确定问题的唯一方法。如果零件由多个零件组合导致减速,则交换零件甚至可能无法解决问题。
而且,AFAIK无法强制您的计算机使用100%的处理器。通常,CPU和OS知道他们需要做什么,并且真的很擅长工作。:-)我认为还没有人想到一种方法来强制馈送CPU,使其在您认为应该的时候以100%的速度运行。至少没有不给它额外的垃圾,以使百分比“看起来不错”。
看到40%而不是40%的整数除法(例如25%,33%或50%),我感到这不是一个线程问题。可以,但是那不是我的想法。但是,+ 1到@Twisty Impersonator可以立即将其启动。
祝你好运,想找出这一点!我花了几天的时间试图弄清楚这种事情,最终以替换大多数胆量为“最后手段”。
在执行渲染和数学任务时,我经常达到100%的利用率。我将验证超线程将达到100%的高水平,并且指令排序很重要。Intel和AMD都有大量专用于指令重新排序的硬件,以填充尽可能多的执行内核。如果您在现代机器上获得30%的收益,则可能
在我坚持编译70k文件项目或将巨型相机原始文件按16位色升级到17“ x26” x600 dpi之前,所有这些东西似乎都是过大的。即使在100%的利用率下,资源也是如此过大,以至于您不会变慢。前一天晚上,我意识到我有两个虚拟机和一个Wolf 2以及2个IDE(我分心了,起诉我),并且没有注意到速度下降。这是一个〜$ 1500的机器顺便说一句,没什么特别的,并且多年来最缓慢地购买。其中一半是Radeon RX64之一,因为我的视频卡已经使用了6年。渲染等方面的巨大差异。升级将使您更多地利用硬件,而不是假设您将获得30%的使用率。
如果我将5400RPM硬盘驱动器放入此OS操作系统,它将像垃圾一样运行。
TL; DR听起来您现在受CPU限制了。花至少几百美元购买至少256GB的SSD操作系统,8GB的RAM和一个较低端的玩家卡,并且计算机将使用数年。在我最终完成处理器和Mobo刷新之前,该代码生存了6年,然后我每天使用旧设备编译整个交叉编译器套件大约25次。
称我为过大杀手,但我不建议您使用8张Tesla卡或其他任何东西。:-)可以的话,做些小规模的升级,我想您会解决很多这样的问题。几年前,我通过在Q6600系统上添加SSD并观察了三倍的性能来做到这一点。
在不知道程序细节的情况下,很难说出来,但是由于另一个答案着眼于应用程序是单线程的可能性,因此,我将把该应用程序视为正在使用适当的多线程处理。
常见的一件事是物理内核与“超线程内核”。在许多短期任务中,超线程在CPU以外的瓶颈方面表现出色。对于紧密循环的CPU瓶颈任务,您仍然受到物理核心数量的限制,物理核心数量通常是超线程核心数量的一半。在绝对最坏的情况下,您的任务管理器可能只显示50%的使用率,因为它在其图形中计算超线程核心,而实际上,您的物理核心可能处于100%的使用率。通常,您将展示更多,因为您的操作系统将能够使用超线程来执行其他不相关的任务。