路转峰回
发现编译器的优化比较复杂,在代码结构不同的情况下做的优化也完全不同。
又做了一个实验,这次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