【发布时间】:2016-03-29 11:25:48
【问题描述】:
在编码时我遇到了一个问题:
当我必须使用大量 for 循环时,所有循环都在不同的跨度上进行迭代。如果我只是将一个变量声明为索引(示例 I)或根本不重要(示例 II),性能(即运行时)会更好吗?
示例一:
int ind;
for(ind=0; ind < a; ind++) { /*do something*/ }
for(ind=0; ind < b; ind++) { /*to something*/ }
...
for(ind=0; ind < z; ind++) { /*to something*/ }
示例二:
for(int ind=0; ind < a; ind++) { /*do something*/ }
...
for(int ind=0; ind < z; ind++) { /*do something*/ }
感谢您的帮助
【问题讨论】:
-
如果有有差异(我怀疑),你将永远无法衡量它。
-
如果存在差异,则无法测量,但编译器很可能应该能够为两者生成相同的代码例子。
-
查看生成的汇编代码。
-
查看生成的汇编代码会告诉你两者是相同的。或者一个有一些其他指令不存在的附加指令。但如果它们只是“不同”,你怎么知道哪个更快?
-
如果您非常关心性能,您应该使用预增量。
标签: c++ c performance for-loop indexing