解释语言中非开关循环的用处是什么?

时间:2012-07-08 22:33:54

标签: optimization gcc loops interpreted-language

我正在研究GCC对-O3所做的事情(我确保我的所有代码都编译好了),我想知道在解释语言中开环是多少有用。我想知道是否值得为“生产”准备的代码,例如当你使用谷歌的封闭编译器,因为它加快了一点但不是我想象的很多。好吧,无论如何,这真正产生了多少好处?我想这是对y循环的x检查。其中x是if else ifs或case开关的数量,y是循环的数量。所以它是x * y。但是当你使用解释语言时,它的价值是多少呢?

我以一种完全理论化的方式问它,因为我只是想知道它,我怀疑它是什么,甚至可能使它倒退,因为它必须在它运行时阅读每个角色。

好的,这就是我正在谈论的循环开关。

同样解释的是我在运行时编译和/或通过VM运行的任何语言的含义,例如: PHP,JavaScript,BASH,Ruby,Perl等

我不知道我是否在上面措辞。但这就是我的意思,在那些必须逐字节读取输入然后将其转换为可以使用的东西的语言中。我也知道你还可以采取其他措施来加快速度,但这是我能想到解释它的最简单方法。

正常循环。

for(i=0;i<10;++i){
    if(something==3){
        do_something;
    }
    else{
        do_something_else;
}

未切换的循环(根据我从clang文档中获取的内容(gcc的废话)。

if(something=3){
 for(i=0;i<10;++i){
    do_something;
}
else{
 for(i=0;i<10;++i){
   do_something_else
 }
}

上面的代码应该是他们所做的。

0 个答案:

没有答案
相关问题