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

2024-09-26 17:59:16 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我惊讶地发现这个脚本平均只使用了4%的CPU。我有一个4核,8线程的CPU,但没有一个核心使用超过一位数的百分比。我本来希望脚本使用一个核心的100%,因为它不做IO。你知道吗

为什么它使用这么少的计算能力,我该如何改进呢?你知道吗


Tags: 数据字符串textin文本脚本核心for
2条回答

您的代码段可能是内存带宽有限的程序。在那个循环中几乎不进行计算。然而,大多数cpu监控程序报告100%只访问内存的程序。我也很困惑。你知道吗

如果你想看到更多正在发生的事情,我建议你玩优秀的perf tool in linux。你知道吗

您可以从查看页面错误开始

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

我是戴尔XPS15中BD PROCHOT bug的受害者,它不断地将CPU限制在800MHz。使用ThrottleStop禁用BD PROCHOT修复了这个问题,我的脚本现在使用了100%的CPU内核。你知道吗

相关问题 更多 >

    热门问题