第一种方法较慢,因为count()
必须在循环的每次迭代中都调用该函数。该count()
方法本身非常快,但是调用该函数仍然有一些开销。通过将其移动到循环之外,您正在执行所谓的“循环不变代码运动 ”,有时甚至是“提升”。
说了这么多,很少需要为此强调太多。在此处的示例中,回显输出的I / O可能是通过“优化”保存的I / O的10倍。而且,如果您在循环中根本不执行任何其他操作,则优化的意义将越来越小。
我不希望自己被弄湿,但是对于您90%以上的代码来说,性能都是没有问题的。尤其是当您谈论Web应用程序时,首先要使用的I / O超过90%。
尽管如此,当您认为应该责怪您的代码时,您应该: