Chakra VS C++(MSVC2010)
做一个测试,看看各种情形下两个编译出来的是否一样
测试结果:对比VC2010的优化(OX),Chakra的优化更像是:
Debug
<---Chakra 大概是这个水平
Release O
具体的现象是:明显比Debug的优化要好,出现了大量常量预先计算、switch分支优化、if分支优化的内容。
但是还有一点比较像Debug,那就是它每一条语句干了什么都有所保留,比如在Release O2中
void foo(){
int a = 1;
a = 2;
a ++;
}
直接会被全部优化掉,顶多留一个foo()的空壳,而在Debug中则类似是
void foo(){
int a = 1;
a = 2;
a = a + 1;
}
在Chakra中则类似是
void foo(){
int a = 1;
a = 2;
a = 3; //预先计算
}