问题描述
这一切都在python 3中。我有一行代码基本上可以做到这一点:
createRectsUsingPixi
从本质上讲,我拥有的是词典列表,每个词典包含多个条目,这些条目指向浮点列表。 someIndex1和someIndex2不相关,都是整数。 someList是字符串列表。
但是,当我将其拆分为下面时,它会变得慢得多:
somefloat += someDict(someList(someIndex1)))(someIndex2)
我已经使用kernprof(它被大量嵌套-超过130,000个调用)对上述时间进行计时。结果如下:
因此,从上面您可以看到,一根衬板比任何一条单独的线都稍慢一些,但是一根衬线的速度几乎是其各个部分组合的4倍。我对这种缓慢的速度感到惊讶-我想念的是,这仅仅是任何操作的成本都超过了特定操作的成本吗?
解决方法
每次为val1,val2和val3分配新值时,都需要将其写入某个位置。然后,需要对其进行访问以获得所需的内容。 如果您的列表是深层嵌套的,并且调用了130k次以上,则每次都需要从该变量获取值,这可能会导致性能下降。