0

我有一个项目,它读取一个文本文件(大小约为 2.6 GB),在某个级别聚合数据并写出一个较小的文件。

我观察到,如果我在调试模式下从 Visual Studio 运行程序,运行需要很长时间(大约 45 分钟)。

相反,如果我打开命令提示符,移动到 Visual Studio Projects 文件夹中的 Debug 文件夹并运行相同的 exe,它会在 10 到 15 分钟内完成。

我还观察到通过 Visual Studio 运行时内存消耗非常高。

我没有单步执行代码,也没有任何断点。与直接从 cmd 运行相比,为什么 Visual Studio 运行相同的可执行文件需要更长的时间?

附言

  • 我尝试在此处搜索此类问题,但大多数问题是关于 Visual Studio 在单步执行时花费很长时间,或者在调试模式下开始执行花费的时间过长。

  • 当其他一切都相同时,我找不到任何关于为什么相同的可执行文件在通过 Visual Studio 运行时需要更多、更长的时间。

4

2 回答 2

1

想一想,当在调试器内部运行时,它(VS 和调试器)会加载调试环境,“仪器”和“分析”执行,并让您停止、设置断点、检查和修改值,...

只运行 DEBUG 版本时,不会加载所有调试器环境,只运行 exe。

现在,当您在 RELEASE 中编译您的项目时,它们会更快。

于 2013-09-26T14:16:29.487 回答
1

程序在 Visual Studio 内部运行比外部慢得多的主要原因是调试堆执行大量错误检查。

尝试在项目的设置(调试器 -> 环境)中将环境变量设置_NO_DEBUG_HEAP为 1 以禁用此功能(请参阅文档)。

这应该使它运行得更快,但显然你不会得到那么多的错误检查 -警告 emptor

于 2013-09-26T14:26:16.037 回答