【发布时间】:2010-05-17 20:42:08
【问题描述】:
我有一个用 C++ 编写的程序,它打开一个二进制文件(test.bin),逐个对象读取它,并将每个对象放入一个新文件中(它打开新文件,写入它(追加),并关闭它)。 我使用 fopen/fclose、fread 和 fwrite。 test.bin 包含 20,000 个对象。
此程序在 linux 下使用 g++ 运行时间为 1 秒,但在 VS2008 中在调试/发布模式下运行时间为 1 分钟!
我不分批执行它们或不将它们保存在内存或任何其他类型的优化中是有原因的。
我只是想知道为什么在windows下这么慢。
谢谢,
【问题讨论】:
-
你的分析器告诉你什么?
-
可能是调试新的免费代码检查...但您可以对其进行分析。发布后会发生什么?
-
1.你实际上是在VS2008中运行程序还是只是编译它? 2. 你是否在 Windows 中为你的硬盘启用了写入缓存? 3. 如果使用 fsync 强制将文件刷到硬盘,Linux 编号是多少?
-
因为你做错了。
标签: c++ windows linux performance visual-c++