我有一个项目,它读入一个文本文件(大小约2.6 GB),在某个级别聚合数据并写出一个较小的文件。
我观察到如果我在调试模式下从Visual Studio运行该程序,则需要花费大量时间来运行(大约45分钟)。
相反,如果我打开命令提示符,移动到Visual Studio Projects文件夹中的Debug文件夹并运行相同的exe,它将在大约10-15分钟内完成。
我还观察到在Visual Studio中运行时内存消耗非常高。
我没有单步执行代码,也没有任何断点。与直接从cmd运行相比,为什么Visual Studio运行相同的可执行文件需要更长的时间?
P.S。
我尝试在这里搜索此类问题,但大多数问题都是关于Visual Studio在执行过程中需要很长时间,或者花费太长时间才能在调试模式下开始执行。
我找不到任何关于为什么同样的可执行文件在其他所有内容都运行时通过Visual Studio运行时需要更长时间的事情。
答案 0 :(得分:1)
考虑一下,当在调试器内部运行时,它(VS和调试器)将加载调试环境,“仪器”和“分析”执行,并将让您停止,设置断点,检查和修改值,.. 。
当刚刚运行DEBUG版本时,您将无法加载所有调试器环境,只需运行exe。
现在,当您在RELEASE中编译项目时,它们将更快。
答案 1 :(得分:1)
在Visual Studio中运行比外部慢得多的问号的主要原因是由于Debug Heap执行了大量错误检查。
尝试在项目设置(调试器 - >环境)中将环境变量_NO_DEBUG_HEAP
设置为1以禁用此功能(请参阅docs)。
这应该让它运行得更快,但显然你不会得到那么多的错误检查 - 警告经纪人。