相关疑难解决方法(0)

python多处理与线程对于Windows和Linux上的cpu绑定工作

所以我敲了一些测试代码,看看多处理模块如何在线程上调整cpu绑定工作.在Linux上,我得到了我期望的性能提升:

linux (dual quad core xeon):
serialrun took 1192.319 ms
parallelrun took 346.727 ms
threadedrun took 2108.172 ms

我的双核macbook pro显示了相同的行为:

osx (dual core macbook pro)
serialrun took 2026.995 ms
parallelrun took 1288.723 ms
threadedrun took 5314.822 ms

然后我去了Windows机器上试了一下,得到了一些非常不同的结果.

windows (i7 920):
serialrun took 1043.000 ms
parallelrun took 3237.000 ms
threadedrun took 2343.000 ms

为什么哦,为什么,多处理方法在Windows上这么慢?

这是测试代码:

#!/usr/bin/env python

import multiprocessing
import threading
import time

def print_timing(func):
    def wrapper(*arg):
        t1 = time.time()
        res = func(*arg)
        t2 = time.time()
        print '%s took %0.3f …

python multiprocessing

30
推荐指数
3
解决办法
9373
查看次数

标签 统计

multiprocessing ×1

python ×1