这是一个与语言无关的问题。几乎每种语言都存在循环,并且相同的原理适用于所有地方。您需要认识到编译器在进行循环优化时会承担最繁重的工作,但是作为程序员,您还需要使循环保持最佳状态。
重要的是要意识到,放入循环的所有内容都会在每次循环迭代中执行。优化循环的关键是最大程度地减少循环。如果重复很多次,即使是看起来非常快的操作也将花费很长时间。执行一项耗时1微秒百万次的操作将需要1秒才能完成。
不要在循环内甚至启动条件下执行len(list)之类的事情。
a = [i for i in range(1000000)] length = len(a) for i in a: print(i - length)
比快得多
a = [i for i in range(1000000)] for i in a: print(i - len(a))
您还可以使用诸如Loop Unrolling(https://zh.wikipedia.org/wiki/Loop_unrolling)之类的技术,该技术是循环转换技术,它以牺牲二进制大小为代价来尝试优化程序的执行速度,这种方法称为时空权衡。
使用诸如map,filter等的函数代替显式的for循环也可以提供一些性能改进。