只是一个快速的比较表明,cout
在 Visual Studio 中比printf
(显着的差异)慢很多 - 我将返回并编辑确切的差异有多大。
显然,用于 UI 操作的库可能要好得多,因为它能够移动光标,并且只重绘实际更改的屏幕部分等。
编辑:我使用以下代码来测量两种输出方法的速度:
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <ctime>
int main(int argc, char **)
{
clock_t t = clock();
for(int i = 0; i < 40; i++)
{
if (argc == 1)
{
std::cout << "0123456789012345678901234567890123456789012345678901234567890123456789\n";
}
else
{
printf("0123456789012345678901234567890123456789012345678901234567890123456789\n");
}
}
std::cout.flush();
t = clock()-t;
std::cout << "Time = " << std::setprecision(3) << t / (double)CLOCKS_PER_SEC;
return 0;
}
printf
在我的机器上,使用('mytest x')大约需要 0.1 秒(0.098-0.113 秒),使用('mytest')大约需要 0.8 秒(0.776-0.860 cout
)。