一、
最近会使用到不少的数据处理,其中多出使用了for循环操作,于是思考了一下机能以及优化相关的东西,遂有此文...
二、循环的机能排序
在以前的文章中已经对此作了简单的测试,链接:文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
for循环、增强for循环、foreach、lambda循环哪一个效力高文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
结论:正常循环 > lambda > 增强for循环 > foreach文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
三、循环中的注意事项
3.1、以小驱大
这个以及数据库关联查询是一个道理的,用小表驱动大表的效力是更高的。附代码如下:文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
} /* 外小内大 */ }
/* 外大内小 */
Long start = System.nanoTime;
for {
for {文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
}
Long end = System.nanoTime;
System.out.println);文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
start = System.nanoTime;
for {
for {文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
}
end = System.nanoTime;
System.out.println);
耗时情况如下:外大内小循环耗时:181410外小内大循环耗时:93572文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
3.2、不在循环中做繁杂的操作
咱们不建议在循环中进行繁杂的逻辑操作,这样每一一次循环时都增添了机能消耗的,附代码:文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
Tips:咱们参照“以小驱大”的机能基准!文章源自微观生活(93wg.com)微观生活-https://93wg.com/4403.html
}
/* 不要在循环中做繁杂操作 */
start = System.nanoTime;
for {
for > 100 ? 1000 : 100); j++ ) {
}
end = System.nanoTime;
System.out.println);
耗时情况如下: 在循环中做了繁杂操作耗时:94176
3.3、不在循环中做无用操作
这个以及上面的情况是有些相似的,咱们不建议在循环体中做一些可有可无的操作,如:变量定义、无效输出、无效逻辑运算等。
附代码:
Tips:咱们参照“以小驱大”的机能基准!
/* 不要在循环中做无效操作 */
start = System.nanoTime;
for {
for {
Double.valueOf;
Long.valueOf;
}
}
end = System.nanoTime;
System.out.println);
耗时情况如下:循环中做了无心义操作耗时:2483294
3.4、不要在循环体重做异样捕获
每一一次的循环都做异样处理是比较耗时的,建议放在循环外部进行异样处理。(
以上就是微观生活(93wg.com)关于“JAVA中for循环优化的思考”的详细内容,希望对大家有所帮助!
评论