【发布时间】:2016-10-07 19:01:22
【问题描述】:
我是一名计算机科学专业的学生,我做的一些事情需要我在配备双核 i5 的 Macbook 上运行巨大的循环。有些循环需要 5-6 个小时才能完成,但它们只使用了我 25% 的 CPU。有没有办法让这个过程更快?我无法更改循环,但有没有办法让它们运行得更快?
谢谢
Mac OS 10.11 Python 2.7(我必须使用 2.7)和 Anaconda 上的 IDLE 或 Spyder
这是一个需要 15 分钟的示例代码:
def test_false_pos():
sumA = [0] * 1000
for test in range(1000):
counter = 0
bf = BloomFilter(4095,10)
for i in range(600):
bf.rand_inserts()
for x in range(10000):
randS = str(rnd.randint(0,10**8))
if bf.lookup(randS):
counter += 1
sumA[test] = counter/10000.0
avg = np.mean(sumA)
return avg
【问题讨论】:
-
你有 4 个处理器吗?
-
@StevenG:(S)他说,“Macbook with dual core i5”。
-
@tTIKA 请从here了解更多关于
Iterators和Generators的信息 -
双核超线程 - 4 核。这就是为什么 25%。但是,是的,为了加快速度,您可以尝试以下方法:
multiprocessing或使用numpy -
不,它不是超线程的。只有物理 2 个核心
标签: python performance python-2.7 loops cpu-usage