为什么我的C#代码比我的C代码快?
发布时间:2020-12-15 06:19:39 所属栏目:百科 来源:网络整理
导读:我在 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" + lin
我在
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(); 这是我的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 linen"); } } fclose(file); cout << "Done!"; 当我启动C#程序时,我立即看到消息“完成!”.当我启动C程序(使用标准C函数)时,它等待至少2秒钟完成并向我显示消息“完成!”. 我只是在玩耍来测试他们的速度,但现在我觉得我不知道很多东西.有人可以向我解释一下吗? 注意:不是可能重复的“为什么C#运行得比C快?”,因为我没有给出任何控制台输出,如“cout”或“Console.Writeline()”.我只是比较文件流机制,它不包括任何可以中断程序主要任务的干扰. 解决方法
你正在比较苹果和土豆.你的C/C++程序根本没有做任何缓冲.如果你使用fstream缓冲你的结果会好很多:另见这
std::fstream buffering vs manual buffering (why 10x gain with manual buffering)?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |