乳清粉确实将一行代码拆分为做很多事情成许多较小的行,所以运行速度慢得多

问题描述

这一切都在python 3中。我有一行代码基本上可以做到这一点:

createRectsUsingPixi

从本质上讲,我拥有的是词典列表,每个词典包含多个条目,这些条目指向浮点列表。 someIndex1和someIndex2不相关,都是整数。 someList是字符串列表。

但是,当我将其拆分为下面时,它会变得慢得多

somefloat += someDict(someList(someIndex1)))(someIndex2)

我已经使用kernprof(它被大量嵌套-超过130,000个调用)对上述时间进行计时。结果如下:

案例1-一支班轮:

enter image description here

案例2-多层次:

enter image description here

因此,从上面您可以看到,一根衬板比任何一条单独的线都稍慢一些,但是一根衬线的速度几乎是其各个部分组合的4倍。我对这种缓慢的速度感到惊讶-我想念的是,这仅仅是任何操作的成本都超过了特定操作的成本吗?

解决方法

每次为val1,val2和val3分配新值时,都需要将其写入某个位置。然后,需要对其进行访问以获得所需的内容。 如果您的列表是深层嵌套的,并且调用了130k次以上,则每次都需要从该变量获取值,这可能会导致性能下降。