考虑一个简单的阶乘函数:
static int factorial(int n) {
if (n <= 0) return 1;
return n * factorial(n - 1);
}
int main(int argc, char** argv) {
return factorial(argc);
}
Run Code Online (Sandbox Code Playgroud)
编译-O2产生了一个非常有趣的区别:
在本地构建并比较运行时,简单的g ++二进制文件肯定会在Ubuntu 17.10上对所有值内的运行速度更快(即不会导致溢出).
谁能告诉我,为什么铛是要这么麻烦,并且什么它试图做(和规模和速度不及格)?