源于虚拟机的设计者 Dan Bornstein,从快到慢依次排序如下:
/*
* How To Write Faster Loops (after Dan Bornstein, Google Engineer)
*
* - http://www.youtube.com/watch?v=ptjedOZEXPM
*
*/
/* 1 (最快) */
for (int i = initializer; i >= 0; i--) { ... } //initializer 初始值
/* 2 */
int limit = calculateLoopLimit();//limit 限定值
for (int i = 0; i < limit; i++) { ... }
/* 3 */
Type[] array = getMyArray();
for (Type obj : array) { ... }
/* 4 */
for (int i = 0; i < array.length; i++) { ... }
/* 5 */
for (int i = 0; i < this.var; i++) { ... }
/* 6 */
for (int i = 0; i < obj.size(); i++) { ... }
/* 7 (最慢) */
Iterable<Type> list = getMyList();
for (Type obj : list) { ... }
本文介绍了由虚拟机设计者Dan Bornstein分享的循环优化方法,详细列出了从最快到最慢的循环实现方式,并探讨了不同场景下循环效率的影响因素。

被折叠的 条评论
为什么被折叠?



