启动调试和附加进程之间有什么区别?

5
我的项目在将其附加到我的w3wp.exe IIS工作进程时加载速度明显更快,而在“开始调试”时加载速度较慢。
但是,无论我是“开始调试”还是“附加到进程”,相同的工作进程似乎都在处理相同数量的模块/DLL(w3wp.exe)。
为什么附加到进程会快得多?
2个回答

3

“开始调试”将在启动时附加调试器,从头开始启动可执行文件的新实例,因此需要所有必要的调试器调用的开销。 而“附加到进程”则会附加到已经运行的进程,因此直到该操作完成之前,您的进程都没有因调试而引起的额外开销。


在回答中使用缩写诸如"w/o"没有充分的理由,@RudolfsBundulis。欢迎来到本站! - Tetsujin no Oni
所以,当你选择“附加到进程”时,你是将调试器附加到你项目的最后一个良好构建? - William
好的,我会考虑到这一点。我想既然这是第一次,我就被原谅了。 - Rudolfs Bundulis
@William - 不,它会将你附加到一个已经运行的进程上。据我所知,您正在运行IIS,这是我不太熟悉的,但我猜当您附加时,您只是附加到IIS已经生成的工作实例,但是当您开始调试时,您会启动一个全新的工作实例。但要确切了解您正在构建什么-工作程序的dll模块,另一个进程等等,我们需要知道具体情况是什么? - Rudolfs Bundulis
Rudolfs,似乎在代码稍作修改后就要重新构建整个项目。然后重新加载由重建生成的大约100个不同DLL的符号,我猜测是这样。 - William

0

没有调试的代码执行速度更快。当你附加进程时,应用程序已经启动,池已启动,因此在调试模式下不执行一些重型操作,例如Application_OnStart事件和其他一些操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接