python - 如何增加python CPU使用率

标签 python cpu

我是一个新手程序员,所以有点迷茫。

我已经编写了一个小的 python 函数,根据我的搜索区域,它运行起来相当耗时,这是预期的。

在某个阈值之后,大约一百万条记录我的程序似乎总是丢失。 Python shell 没有响应,但 CPU 使用率保持在 13% 左右。我也无法通过 KeyboardInterrupt 停止程序执行

所以我的问题是:是否可以增加我的 python 程序的 CPU 使用率以使其运行得更快?

附带问题:关于为什么 python shell 变得无响应的任何帮助?我没有使用过多的内存,我只需要能够尽快循环遍历一个大集合。

最佳答案

你的cpu是多核cpu吗?如果是,则有多种方法可以通过 python 使用多核。

内置多处理模块。 multiprocessing.Pool 类使用 map() 和相关方法提供跨多个 CPU 的矢量化。不过,这里需要权衡取舍。如果您必须在进程之间传递大量数据,那么这种开销可能会抵消多核的优势。 使用合适的 numpy 构建。如果 numpy 是用多线程 ATLAS 库构建的,那么它在处理大型问题时会更快。 使用像 numexpr 这样的扩展模块, parallel python , corepy或哥本哈根矢量字节码。

请注意,threading 模块在这方面并不是那么有用。为了保持内存管理简单,全局解释器锁(“GIL”)强制一次只有一个线程可以执行 python 字节码。外部模块,如 numpy不过,可以在内部使用多个线程。

关于python - 如何增加python CPU使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222023/

相关文章:

php - 在 PHP 中,sleep 和 usleep 的内部行为是否不同?

kubernetes - Kubernetes 如何计算 HPA 的 CPU 利用率?

python - 为什么在 C++ 上使用 OpenCV 时的 CPU 使用率比在 Python 上高

linux - 有没有办法在 Linux 系统上禁用 CPU 缓存(L1/L2)?

c - 应用框模糊时计算一帧(在 CPU 和 GPU 上并行处理)需要多长时间?

python - Scrapy选择器有select()方法吗?

python - Celery:获取上次运行任务的时间?

python - "ImportError: No module named httplib2"即使在安装后

python - FileNotFoundError - 该错误表明它找不到显然找到的文件

python - 如何在Python中使用变量的值作为类型提示