CPython和IronPython的多线程性能测试
2009 11 28 04:24 AM 3144次查看
测试内容是计算小于5千万的自然数的和,CPython使用2.5.4版,IronPython使用2.6版,CPU为Inter Core2 Duo T9400 @ 2.53GHz。
单线程算法:
from time import clock
from threading import Thread
N = 5000000
t = clock()
print sum(xrange(N * 10))
print clock() - t
测试结果:CPython:6.007CPU占用率都是50%,IronPython稍快一点,但较长的启动时间没有计算在内。
IronPython:5.887
10个线程的算法:
from time import clock
from threading import Thread
N = 5000000
result = []
def f(start, stop):
result.append(sum(xrange(start, stop)))
threads = [Thread(target=f, args=(i * N, (i + 1) * N)) for i in xrange(10)]
t = clock()
for thread in threads:
thread.start()
for thread in threads:
thread.join()
print clock() - t
print sum(result)
测试结果:CPython:6.006CPython的CPU占用率是50%,不考虑误差的话,成绩基本不变。IronPython的CPU占用率顶峰时到了将近90%,成绩提高了33%。
IronPython:4.428
从测试结果可以看出,IronPython的多线程能力确实要比CPython强。
向下滚动可载入更多评论,或者点这里禁止自动加载。