C++ 有什么方法可以使程序 运行 更快?

C++ Is there any way to make a program run faster?

例如..如果我有。

#include <iostream>
using namespace std;

int main()
{
   int counter = 0;
   while (true)
   {
      cout << counter << endl;
      counter++
   }
}

假设我正在和其他计算机进行数到 10 亿的竞赛,这个循环的速度 运行 是否完全取决于计算机处理器的速度?还是我的程序的速度有限制 运行,这可以改变?

去掉 endl,改用 "\n"。计划至少将速度提高 4 倍。

将输出写入文件而不是屏幕。这对于再提高 10 倍的速度应该是有好处的(或者如果你使用 SSD,则更多)。

您发布的程序运行缓慢是因为将内部表示格式化为人类可读的形式(文本表示)并输出文本表示。

一个没有提到的优化是缓冲你的格式化输出,然后输出它。例如,将格式化文本写入缓冲区,然后每 100 次左右计数,使用块写入打印出缓冲区。 objective是为了减少输出交易的数量,让每笔交易的数据量更大。基本上,一个 1024 个字符的输出比 1024 个 1 个字符的输出要快。

输出取决于 OS 和其他程序无法控制的因素。您的程序将数据发送到 OS 并等待 OS 完成请求。完成时间取决于任务优先级和资源可用性(至少)。因此,如果您的程序可以以毫秒计算,但 I/O 需要几秒钟,那么您的运气不佳,因为没有程序优化会有所帮助。

使用 <cstdio> 中的 printf,它比 cout 快一点。

printf("%d\n", counter);

如果您正在使用 cout 但未使用库 <cstdio> 中的任何内容,您可以在 int main() 函数的开头编写:

    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);