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