我正在查看 GCC 对 -O3 的作用(我确保我的所有代码都可以编译),并且我想知道在解释语言中取消切换循环有多大用处。我想知道对于“生产”就绪的代码是否值得,例如当您使用谷歌的闭包编译器时,因为它会加快一点,但我想象的不是很多。无论如何,这真正产生了多少好处?我想这是 x 检查 y 循环。其中 x 是 if else if 或 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
}
}
上面的代码应该是他们所做的。