arm's multiply(arm的乘)之三
生活随笔
收集整理的這篇文章主要介紹了
arm's multiply(arm的乘)之三
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
路轉峰回
發現編譯器的優化比較復雜,在代碼結構不同的情況下做的優化也完全不同。
又做了一個實驗,這次evc很笨沒有做優化
int array[1000];
int res;
for(int p1=0;p1<1000;p1++)
for(int p2=0;p2<1000;p2++)
for(int p3=0;p3<1000;p3++)
res = array[1000]*105;
這次實測結果是大概都在43xxx ms左右。
而我把105改成10005后居然到了53xxx ms!!!
看反匯編后的代碼也發現是用了mul指令,即沒有優化。
但要注意的是stongarm的mul指令最多是2個cycle.和以前的multiplier不同了!!!
發現編譯器的優化比較復雜,在代碼結構不同的情況下做的優化也完全不同。
又做了一個實驗,這次evc很笨沒有做優化
int array[1000];
int res;
for(int p1=0;p1<1000;p1++)
for(int p2=0;p2<1000;p2++)
for(int p3=0;p3<1000;p3++)
res = array[1000]*105;
這次實測結果是大概都在43xxx ms左右。
而我把105改成10005后居然到了53xxx ms!!!
看反匯編后的代碼也發現是用了mul指令,即沒有優化。
但要注意的是stongarm的mul指令最多是2個cycle.和以前的multiplier不同了!!!
轉載于:https://www.cnblogs.com/embed/archive/2004/07/01/20123.html
總結
以上是生活随笔為你收集整理的arm's multiply(arm的乘)之三的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 米哈游诉三七互娱抄袭《原神》获赔3万元
- 下一篇: 信用卡滞纳金怎么算 看完你就明白了