php - for与foreach哪个更快?
本文介绍了php - for与foreach哪个更快?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
for与foreach哪个性能更好一些?还是处理不同的数据有各自的优点?希望大神给解答一下.
解决方案
对ArrayList
这样的可使用下标进行随机访问的数据结构,使用下标访问,要比foreach
的方式进行顺序访问,速度要快一些。foreach
这样写法,使用的过程产生一个额外的对象Enumerator
,而且每次访问需要更多的操作,降低性能。
foreach
是通过GetEnumerator
获得一个IEnumerator
对象,通过IEnumerator
对象执行MoveNext()
方法和获取Current
属性进行遍历的。
由于Enumerator
中,做了版本检查处理
的工作,所以使用foreach
是线程安全
所以for
的效率通常来说是高于foreach
的,但话也不能说是绝对。
那么如何选择呢?我的建议是,在一些全局的,多线程可以访问的数据结构对象,使用foreach
。而对本地变量,则使用for
,效率和安全兼顾!
更新:刚刚查了下资料,发现对于10W级以上的数组,foreach效率会更高,但对于1W级的数组,还是for效率高。
http://blog.csdn.net/w2cschoo...
这篇关于php - for与foreach哪个更快?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文