【发布时间】:2016-06-07 09:07:34
【问题描述】:
为了编写一个事件驱动的模拟器,我依赖 simpy,它大量使用 Python 生成器。我试图了解如何使生成器尽可能快,即最小化状态保存/恢复开销。我尝试了三种选择
- 所有状态都存储在一个类实例中
- 全局存储所有状态
- 本地存储的所有状态
并使用 Python 3.4.3 得到以下结果:
class_generator 20.851247710175812
global_generator 12.802394330501556
local_generator 9.067587919533253
代码可以在here找到。
这对我来说是违反直觉的:将所有状态存储在类实例中意味着只有 self 需要保存/恢复,而全局存储所有状态应该确保零保存/恢复开销。
有人知道为什么类生成器和全局生成器比本地生成器慢吗?
【问题讨论】:
标签: python python-3.x generator