我有一个读取文本文件(大约 2.6 GB 大小)的项目,在某种程度上聚合数据并写出一个较小的文件。
我观察到,如果我在 Debug模式下从 Visual Studio 运行程序,运行会花费很多时间(大约 45 分钟)。
相反,如果我打开命令提示符,移至我的 Visual studio Projects 文件夹中的 Debug 文件夹并运行相同的 exe,它将在将近 10-15 分钟内完成。
我还观察到通过 Visual Studio 运行时内存消耗非常高。
我没有单步执行代码,也没有在其中设置任何断点。为什么 Visual Studio 运行相同的可执行文件比直接从 cmd 运行它花费的时间要长得多?
附言
我尝试在此处搜索此类问题,但大多数问题都是关于 Visual Studio 在单步执行时花费很长时间,或者在 Debug模式下开始执行花费的时间太长。
我找不到任何关于为什么在其他一切都相同的情况下相同的可执行文件在通过 Visual Studio 运行时花费的时间要长得多的任何信息。
最佳答案
程序在 Visual Studio 内部运行速度比外部慢的主要原因是 Debug Heap它做了很多错误检查。
尝试在项目设置(调试器 -> 环境)中将环境变量 _NO_DEBUG_HEAP
设置为 1 以禁用它(参见 docs)。
这应该会使它运行得更快,但显然你不会得到那么多的错误检查 - caveat emptor。
关于c - 为什么 Visual Studio 2010/12 在 Debug模式下运行程序会占用大量内存和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030348/