python - 有没有办法估计循环本身的 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 解释器开销?
解决方案
问:有没有办法估计循环本身的 Python 解释器开销?
您已经在3 小时前收到了答案,其中包含基准测试模板的说明,使用[us]
-resolution 时间。
如果您没有尝试推荐的测试模板来测量它,那就去尝试吧,您将收到硬数据,循环成本是多少(最好使用超出缓存大小的数据样本 + 避免np.random.random()
生成成本)。
推荐阅读
- php - 如何根据 IP 地址提供网站内容?
- python - 使用置换列表填充具有特殊顺序的二维数组
- python - 如何在 Keras YOLOv3 解码输出上实现?
- shell - 如何在 shell 脚本中将十六进制转换为 Base64(预期不同的输出)?
- python - 如何限制 Django 应用程序中显示的项目数量
- c# - 初始化 C# IntPtr 以接受来自非托管 C++ DLL 的数据?
- bash - 如何将 avro 模式生成器的 bash 脚本转换为 java 代码
- javascript - 使用 Nodemailer 通过 Gmail 发送电子邮件时如何解决“未处理的承诺拒绝”
- java - 如何从 Ms Access 数据库中的 Java 中的 jLabel 中显示行?
- c++ - 将调用哪个重载模板?