- 将循环的总次数提取出来
for(int i=0;i<list.size();i++){
}
提取出来后为
for(int i=0,j=list.size();i<j;i++){
}
优化前用时:47871
优化后用时:566
- 循环嵌套的外小内大修改
for(int i=0;i<10000;i++){
for(int i=0;i<10;i++){
}
}
提取出来后为
for(int i=0;i<10;i++){
for(int i=0;i<10000;i++){
}
}
优化前用时:7541608
优化后用时:4316
- 将无用逻辑放在循环外
for(int i=0;i<10;i++){
i = i * a * b;
}
提取出来后为
int c=a*b;
for(int i=0;i<10;i++){
i = i * c;
}
优化前用时:7541608
优化后用时:4316
- 异常处理在循环中
for(int i=0;i<10;i++){
try{
}catch(Exception e){
}
}
提取出来后为
try{
for(int i=0;i<10;i++){
}
}catch (Exception e){
}
优化前用时:33916
优化后用时:489