我在Windows操作系统上启动这两个控制台应用程序.这是我的C#代码
int lineCount = 0;
StreamWriter writer = new StreamWriter("txt1.txt",true);
for (int i = 0; i < 900; i++)
{
for (int k = 0; k < 900; k++)
{
writer.WriteLine("This is a new line" + lineCount);
lineCount++;
}
}
writer.Close();
Console.WriteLine("Done!");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
这是我的C代码.我假设它是C,因为我包括cstdio并使用标准fopen和fprintf功能.
FILE *file = fopen("text1.txt","a");
for (size_t i = 0; i < 900; i++)
{
for (size_t k = 0; k < 900; k++)
{
fprintf(file, "This is a line\n");
}
}
fclose(file);
cout << "Done!";
Run Code Online (Sandbox Code Playgroud)
当我启动C#程序时,我立即看到消息"完成!".当我启动C++程序(使用标准C函数)时,它等待至少2秒钟才能完成,并向我显示消息"完成!".
我只是在玩耍来测试他们的速度,但现在我觉得我不知道很多东西.有人可以向我解释一下吗?
注意:不可能重复"为什么C#运行速度比C++快?",因为我没有提供任何控制台输出,如"cout"或"Console.Writeline()".我只是比较文件流机制,它不包括任何可以中断程序主要任务的干扰.
Phi*_*yck 12
你正在比较苹果和土豆.您的C/C++程序根本没有进行任何缓冲.如果你使用fstream缓冲你的结果会好很多:另见std :: fstream缓冲与手动缓冲(为什么10倍增益与手动缓冲)?