【发布时间】:2013-07-16 02:48:19
【问题描述】:
我正在用for循环和if语句做一些简单的逻辑,我想知道以下两个定位哪个更好,或者两者之间是否存在显着的性能差异。
案例一:
if condition-is-true:
for loop of length n:
common code
do this
else:
another for loop of length n
common code
do that
案例 2:
for loop of length n:
common code
if condition-is-true:
do this
else:
do that
基本上,我有一个 for 循环,需要根据条件稍微不同地执行,但无论如何,在 for 循环中都需要发生某些事情。我更喜欢第二个,因为我不必重复两次 commond 代码,但我想知道案例 1 的性能是否会更好?
我知道就大 O 表示法而言,这并不重要,因为 if-else 语句无论如何都是一个常数,但我想知道一个不太大的数据集(也许 n = 几个数千),如果这两种情况有所不同。
谢谢!
【问题讨论】:
-
KISS 显然表明 2 更好。通常是因为重构。编译器可能不够聪明,无法自行找出常见的东西。
标签: performance if-statement for-loop