大循环在内,小循环主外为什么会效率高
生活随笔
收集整理的這篇文章主要介紹了
大循环在内,小循环主外为什么会效率高
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉自:http://www.cnblogs.com/jfei1982/articles/891716.html一樓回復.
其實,這個問題的主要原因是CPU內(nèi)部的指令執(zhí)行機制。現(xiàn)在,基本上CPU內(nèi)部都有分支指令預測,就是當執(zhí)行(現(xiàn)在大多將這一階段提前到預取指令時執(zhí)行)到轉移指令時,都會直接從分支目標緩存(BTB)中取出目標指令的地址,然后將要執(zhí)行的指令提前預取到CPU的指令預取指令隊列中。這樣,顯然大大提高了效率。舉個例子,一個10次的一層循環(huán)在執(zhí)行時,除了在第一次和最后一次會預測錯誤外,其他8次都會預取成功,避免了執(zhí)行轉移指令時重新取出新指令造成的時間浪費。?
所以,當有兩層循環(huán),外層循環(huán)數(shù)為A,內(nèi)層為B,A遠大于B,那么最終造成的預測錯誤數(shù)為A*2+2,而如果外層數(shù)為B,內(nèi)層數(shù)為A,預測錯誤數(shù)為B*2+2,顯然后者要節(jié)省更多時間,而且這個時間是很可觀的。A比B越大,這個時間差越明顯。?
轉載于:https://www.cnblogs.com/Sunwayking/articles/1803624.html
總結
以上是生活随笔為你收集整理的大循环在内,小循环主外为什么会效率高的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 过简单的研究生生活
- 下一篇: selector-UI元素状态伪类