为什么Python仅使用4%的CPU?

时间:2019-02-07 13:54:55

标签: python cpu-usage

我有一个Python脚本,可以计算非常大的文本中每个k长的子字符串的出现次数。在存储和删除重复的子字符串之后,这是这样做的:

counts = {}
for s in all_substrings:
    counts[s] = full_text.count(s)

我很惊讶地看到该脚本平均仅使用4%的CPU。我有一个4核8线程CPU,但是没有一个核以超过一位数的百分比使用。我本来希望该脚本使用一个内核的100%,因为它不执行IO。

为什么它使用的计算能力这么少,我该如何改善呢?

2 个答案:

答案 0 :(得分:1)

您的代码段可能是内存带宽受限的程序。您几乎不需要执行该循环中的任何操作。但是,大多数cpu监视程序报告仅访问内存的程序为100%。我也很困惑。

如果您想了解更多事情,我建议您使用出色的perf tool in linux

您可以先查看页面错误

# Sample page faults with stack traces, until Ctrl-C:
perf record -e page-faults -ag

答案 1 :(得分:0)

我是Dell XPS 15中BD PROCHOT bug的受害者,该公司不断将CPU限制为800 Mhz。通过ThrottleStop禁用BD PROCHOT可以解决此问题,并且我的脚本现在使用了100%的CPU内核。