首页 > 解决方案 > 有没有办法估计循环本身的 Python 解释器开销?

问题描述

这篇文章

如果循环的主体很简单,则循环本身的解释器开销可能是开销的很大一部分

并举这个例子来说明Parallel。

def convolve_random(size):
    ''' Convolve two random arrays of length "size" '''
    return np.convolve(np.random.random_sample(size), np.random.random_sample(size))
%timeit convolve_random(40000)
1 loops, best of 3: 904 ms per loop

%timeit [convolve_random(40000 + i*1000) for i in xrange(8)]
# In parallel, with 8 jobs
%timeit Parallel(n_jobs=8)(delayed(convolve_random)(40000 + i*1000) for i in xrange(8))
1 loops, best of 3: 8.69 s per loop
1 loops, best of 3: 2.88 s per loop

在这种情况下,有没有办法估计循环本身的 Python 解释器开销?

标签: pythonparallel-processing

解决方案


有没有办法估计循环本身的 Python 解释器开销?

您已经在3 小时前收到了答案,其中包含基准测试模板的说明,使用[us]-resolution 时间。

如果您没有尝试推荐的测试模板来测量它,那就去尝试吧,您将收到硬数据,循环成本是多少(最好使用超出缓存大小的数据样本 + 避免np.random.random()生成成本)。


推荐阅读