Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 哪个更快:!=或<;_Optimization - Fatal编程技术网

Optimization 哪个更快:!=或<;

Optimization 哪个更快:!=或<;,optimization,Optimization,以下哪项更快 for (int i = 0; i < n; ++i) 我想知道,因为我不了解硬件,因此也不了解计算机如何看待原始类型的,这两种操作所用的时间完全相同,因为无论您要求什么,这两种操作实际上都是确定的 简言之,无论何时进行基本比较,==或=,运算符的一侧从另一侧减去。然后使用减法的结果设置许多标志,其中最重要的标志是Z(零)、N(负)和O(溢出)。根据这些名称,您应该能够弄清楚每个标志代表什么。例如:如果减法结果为零,则设置Z标志。因此,无论您是否要求,这些指令都会编译成完全

以下哪项更快

for (int i = 0; i < n; ++i)

我想知道,因为我不了解硬件,因此也不了解计算机如何看待原始类型的
,这两种操作所用的时间完全相同,因为无论您要求什么,这两种操作实际上都是确定的


简言之,无论何时进行基本比较,
=
=
=,运算符的一侧从另一侧减去。然后使用减法的结果设置许多标志,其中最重要的标志是
Z
(零)、
N
(负)和
O
(溢出)。根据这些名称,您应该能够弄清楚每个标志代表什么。例如:如果减法结果为零,则设置
Z
标志。因此,无论您是否要求
,这些指令都会编译成完全相同数量的机器指令——相等时跳转和更少时跳转都是单个汇编指令。您可以在此处阅读这些说明:

如果将循环体中的
i
的值更改为大于
n
的值,则比较
(如果满足特定条件,可能需要将
i
增加两次,这可能发生在最后一次迭代中),或者将
n
更改为小于
i
,则第二个版本(带有
!=
)循环将不会终止


如果要迭代
n次
,则第一个版本(<<代码>)不仅仅是硬件。有太多的因素。最好自己尝试测量性能。也考虑bug的影响。如果代码中有bug,这两种结构都可以永远循环。哪种类型的bug更容易避免,更容易发现和更容易修复?你不需要这样的级别。性能。为了可读性,你应该使用第一个,因为如果i>na,第二个将不起作用。你在说什么语言、编译器、体系结构等差异将是如此之小,以至于你不应该在意。我从语法上假设这是
C++
问题。如果
n==-1
顶部循环执行零次,但底部循环数十亿次。因此,从统计上讲,我猜最重要的一个是,在
n
的所有值上,速度更快!;-)
for (int i = 0; i != n; ++i)