今天开始做C++和C#在IO方面的性能比较环境:
VS 2005;
XP 用C#和C++分别都执行500000次的写文件和读文件.
C#的为StreamWriter w writeLine("abcdefghijklmnopqrstuvwxyz")
StreamReader r readLine();
C++的为fputs(("abcdefghijklmnopqrstuvwxyz/n",fp);
fgets(buf, 255, fp);
生成的文件大小为13M.
各执行十次,记录下所用时间(ms):
C# C++
1 write 1188 Write 719
2 write 484 Write 718
3 write 594 Write 719
4 write 484 Write 718
5 write 469 Write 704
6 write 469 Write 703
7 write 469 Write 718
8 write 484 Write 703
9 write 484 Write 875
10 write 484 Write 703
平均 561 728
1 read 797 Read 641
2 read 859 Read 625
3 read 375 Read 625
4 read 578 Read 625
5 read 375 Read 640
6 read 563 Read 641
7 read 641 Read 625
8 read 500 Read 625
9 read 438 Read 625
10 read 688 Read 625
平均 581 629.7
在read上, C# 比C++快了23%,
在write上, C# 比C++快了8%.
真是超出意料,本来以为会是C++的代码要比C#的代码更快.
但结果却是与意料的相反.
值得注意的是, C++的性能较C#的发挥更稳定.(只是一下子想不起来用什么统计函数来表达(协方差应该可以吧)