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; //预先计算
}

标签:none

添加新评论

captcha
请输入验证码