.NET:运行带有调试信息的程序

| 众所周知,以“调试模式”(而不是“发布模式”)编译程序可能会导致性能降低。 但是有时候,使用一些调试信息可能会很有用。例如,当我们的程序在生产服务器上运行并且发生异常时,它将有助于在异常时记录堆栈跟踪。 我发现这是有可能的,可以在“发布模式”下编译代码,并将* .pdb文件和二进制文件放置在同一文件夹中。 任何人都知道附加pdb文件是否会导致任何性能问题。 谢谢     
已邀请:
由于DLL是在发布模式下编译的,因此不会造成任何性能问题。引发异常时,.NET VM会了解有关堆栈跟踪的所有信息,包括引发异常时堆栈的每个方法中正在运行的指令。包括pdb文件只是提供了一种将数据映射到实际文件名和行号的方法。 将多余的数据包含在堆栈跟踪中而导致的任何性能差异都可能会因首先引发异常的开销而相形见。     
编译为发布模式+生成.pdb对性能没有影响 将.pdb文件与dll并置以查找调试信息仅在例外时对性能的影响很小,这可以忽略不计。这是从pdb映射中查找堆栈信息的开销。     
它不会对性能产生负面影响,但确实会暴露您可能不需要的安全性问题。具有调试符号对于在发生异常时捕获良好的堆栈跟踪很有用,但是它不应该是您的默认出厂模式。     

要回复问题请先登录注册