B150 i5 6400 4核,win7 64位系统
只开一个自己的程序A,CPU占用3%左右,程序运行慢;
再开一个网页浏览器或者Foxmail,A的CPU占用增加到11%左右,程序运行变快,和高性能电脑上运行速度差不多。
请问只开开一个A程序怎么让CPU占用率高点呢?
四核心cpu,理想情况,不用多线程,最高可以到25%
不足这个比例,可能是你错误添加sleep或者定时器,延迟造成的,如果是网络程序,还应考虑网络的延迟。
如果有网络延迟,可以多进程/多线程运行。
可以看看用火焰图来分析,然后调试CPU:
全文,请参见原文:如何使用性能分析来调试Python的性能问题 【使用火焰图找出问题根源】
https://blog.csdn.net/SusyYang/article/details/113927192
如何使用火焰图调试性能问题(并在服务器上节省下6.6万美元)
假设下面的火焰图对应呈现上图中央处理器利用率飙升的时段。在此高峰期间,服务器的中央处理器的使用情况如下:
您可把火焰图视为超详细的饼图,其中:
在这种情况下,’foo()’ 占据了整时间范围的75%,因此我们可以改进`foo()`及其调用的函数来减少中央处理器的利用率(并节省$$)。
用Pyroscope工具创建火焰图和表格
为了用代码重现上文的例子,我们将使用Pyroscope工具 — 专门针对性能调试问题提供持续的性能分析,并且是开源。
为了模拟服务器,我写了 ’work(duration)’ 函数,该函数在该持续时间段内模拟工作。这样,我们就可以通过下述代码构建火焰图,来复现’foo()’ 所用的75%时间和 ‘bar()’ 所用的25%时间:
# 模拟每次迭代中央处理器的时间
def work(n):
i = 0
while i < n:
i += 1
# 模拟中央处理器运行7.5秒
def foo():
work(75000)
# 模拟中央处理器运行2.5秒
def bar():
work(25000)