【发布时间】:2011-10-31 11:03:48
【问题描述】:
所以我在处理 Python 中的 for 循环时遇到了一些麻烦——据我所知,它们随着时间的推移变得越来越慢。我在一个范围内的范围内循环,随着时间的推移,循环明显变慢。如果重要的话,这是在游戏引擎内部完成的。谁能告诉我是什么问题?
这是一个简单的例子。
for x in range(xs): # xs, ys, and zs are all pre-determined size values
for z in range(zs):
for y in range(ys):
vp = [x * vs, y * vs, z * vs]
v = Cube(vp)
这个过程的初始速度很好,但随着时间的推移循环变慢。我知道它与游戏引擎的光栅化器不同,因为当循环完成时,引擎的其余部分以 60 FPS 运行。那么可能是什么问题呢?
编辑:我使用的是 Python 3,所以没有 xrange。
编辑 2:对于本例,vs 为 1.0,xs、ys 和 zs 的预定大小值均为 20。
【问题讨论】:
-
你的三个循环参数xs、ys和zs有多大?
-
如果你注释掉循环内的两行中的任何一行怎么办?
-
如果你使用python 2.x
xrange会比range快 -
抱歉,我会提供更多信息。
-
您如何衡量“初始速度”与“随时间变慢”?我们是在讨论所示代码的单次运行中的迭代,还是在讨论所示代码的连续运行?如果是前者,您如何衡量流程的完成百分比?
标签: python performance for-loop python-3.x range