|
|
1
12
是的,它将在循环的每次迭代中逻辑地计算中间操作数的整个值。当然,在JIT知道得更好的情况下,它可以做一些聪明的事情(甚至可以根据循环条件在循环中删除数组边界检查)。
注意,对于JIT不知道的类型,它可能不能像这样进行特别的优化,但是仍然可以内联,比如获取
最后,为了可读性,我通常更喜欢增强的for循环:
|
|
2
6
对。具体来说,条件部分被执行 之前 以你为例:
|
|
|
3
4
是的,必须为循环的每次迭代计算表达式,以确定是留在循环内还是继续程序执行。 记住,你可以这样做:
你说得对,如果for循环条件中的计算可以移到单独的变量中,你应该这样做:
很容易做到:
|
|
|
4
1
循环不变量 Loop-invariant code motion 但在解释模式下运行时 没有多少优化工作要做。 |
|
|
5
1
|
|
|
6
1
它会打印出来
|
|
|
7
1
每一次 所以:
对的:
|
|
|
8
0
请问编译器是否缓存十倍长度因为他知道它在循环中不会改变?或者询问编译器是否自动知道整个表达式索引<十倍长度接下来的9次不需要评估? |
|
9
0
除此之外,即使tenBig的长度是const,循环将始终访问此属性,因此将其分配给变量是理想的(即使在您的示例中它不是合理的速度增益)。 |
|
|
BlurKid · R中for循环时结果的奇怪差异 1 年前 |
|
|
bigjdawg43 · 迭代多个数据帧中的列并有条件地执行操作 1 年前 |
|
|
xhamsterIT · 循环VBA Microsoft Excel 1 年前 |
|
|
Nico44044 · 使用for循环遍历Django模型字段 1 年前 |
|
|
chanbo chung · 如何在聚合中获得所有可能的组合 1 年前 |
|
|
Himanshu · 无法在逐行二进制搜索中迭代2D数组中的所有行 1 年前 |
|
|
stephr · 循环为多个变量选择最接近另一个日期的日期 1 年前 |