Николай Серенко Asked:2024-10-01 20:30:46 +0000 UTC2024-10-01 20:30:46 +0000 UTC 2024-10-01 20:30:46 +0000 UTC 代码如何影响编译速度? [关闭] 772 是否全取决于代码总量、依赖项数量或者代码的复杂程度以及复杂函数的使用等等? 例如,编译速度更快: 一堆if 一switch c++ 1 个回答 Voted Best Answer Harry 2024-10-01T23:16:35Z2024-10-01T23:16:35Z 不是一个正式的答案(我仍然不明白为什么需要这个......),但这就是 Visual C++ 2022 在我的机器上为这种奇怪的代码提供的 int n; cin >> n; switch(n) { case 0 : cout << "0\n"; break; case 1 : cout << "1\n"; break; case 2 : cout << "2\n"; break; case 3 : cout << "3\n"; break; case 4 : cout << "4\n"; break; (因此 64000 次)10 个编译器运行优化的编译 + 链接时间为 22±2 秒,没有优化则为 17.7±0.7 秒。 表格中相同 64,000 次 int n; cin >> n; if (n == 0) { cout << "1\n"; } if (n == 1) { cout << "1\n"; } if (n == 2) { cout << "2\n"; } if (n == 3) { cout << "3\n"; } if (n == 4) { cout << "4\n"; } if (n == 5) { cout << "5\n"; } if (n == 6) { cout << "6\n"; } (else不允许,说编译器内部溢出:)) 有优化17.0±0.9s,无优化14.7±0.3s 得出你自己的结论。 无论优化如何,exe 大小几乎相同,均为 2.5 MB。
不是一个正式的答案(我仍然不明白为什么需要这个......),但这就是 Visual C++ 2022 在我的机器上为这种奇怪的代码提供的
(因此 64000 次)10 个编译器运行优化的编译 + 链接时间为 22±2 秒,没有优化则为 17.7±0.7 秒。
表格中相同 64,000 次
(
else不允许,说编译器内部溢出:))有优化17.0±0.9s,无优化14.7±0.3s
得出你自己的结论。
无论优化如何,exe 大小几乎相同,均为 2.5 MB。