繁体   English   中英

使用debug = false的Web应用程序中的调试模式下的DLL会发生什么情况?

[英]What happens to a DLL in debug mode inside a web application with debug=false?

我知道debug = true在任何生产服务器上都是一件坏事。

我当前正在使用一些来自第三方的dll,它们是在调试模式下编译的,并且想知道-使用debug = false的Web应用程序中的调试模式下的DLL会发生什么情况?

在C#/ .NET(与C ++ DLL不同)中,这通常不是问题。 调试和发布几乎相同,并且没有内存管理问题(就像C ++ DLL一样)。

以下是jaybaz的博客

人们通常将三件事视为调试与发布之间的区别。 您需要确定您对哪一个感兴趣:

“ DEBUG”预处理器标志。 可以使用'csc / define'在整个程序集/网络模块上进行设置,也可以使用#define在整个文件中进行设置。

调试信息(pdb)。 用'csc / debug [+ |-]'设置。 它不会影响代码生成,因此它并不是很有趣。

优化。 用“ csc / optimize [+ |-]”设置。 在托管代码中,运行时中的JITter几乎完成了所有优化。 从该标志生成的IL的差异很小。 Whidbey C#编译器与以前的版本相比,在此标志上有更多的区别,但是仍然没有太大的区别。

system.web / compilation配置元素的debug属性对编译的DLL的代码没有影响。

它只会影响动态编译的代码,并且会对运行时产生其他影响(例如,如果debug = true,则将忽略system.web / httpRuntime配置元素的executeTimeout元素)。

AFAIK如果在调试模式下进行编译,则编译器不会优化二进制数据,因此使调试器更容易。 在某些情况下可能会导致性能下降。 编译器还会为调试器添加额外的数据。

我假设您正在谈论ASP.Net网站以及有关在调试模式与发布模式下编译的dll。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM