我是一个新手程序员,所以有点迷茫。
我已经编写了一个小的 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/