Jav*_*vaL 0 java optimization coding-style
例如
int offset = getOffset();
int count = getCount();
int limit = count + offset;
for (int i; i < limit; i++) {}
Run Code Online (Sandbox Code Playgroud)
更优选
int offset = getOffset();
int count = getCount();
for (int i; i < offset + count; i++) {}
Run Code Online (Sandbox Code Playgroud)
如果Java VM在每次迭代时都进行了添加,那听起来就像是一个很大的开销.但如果编译器足够聪明以限制单次添加,我想保持我的代码简短.
过早优化是万恶之源.
现在不用担心.
当您从循环中提取添加部分时,它确实只会被评估一次.有些编译器也可能足够聪明以优化它,但有些可能没有.
几乎所有CPU都需要添加32位整数所需的时间非常小.如果您使用了分析器并发现for循环条件确实导致了性能问题,那么您应该将其添加出去并查看它是否有帮助.但是当你甚至没有发现问题时,没有必要担心它.
所以现在,根据你脑子里的想法编写你的代码.对我来说,例如,如果我在想"现在我需要重复这个(偏移+计数)次......",我会写
for (int i = 0 ; i < offset + count ; i++)
Run Code Online (Sandbox Code Playgroud)
如果我在想"现在我需要计算我们循环的次数,然后我将循环多次",那么我会写:
int limit = offset + count;
for (int i = 0 ; i < limit ; i++)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |