C# 在debug=false的web应用程序中,处于调试模式的DLL会发生什么情况?
我知道debug=true在任何生产服务器上都是一件坏事C# 在debug=false的web应用程序中,处于调试模式的DLL会发生什么情况?,c#,.net,dll,debugging,C#,.net,Dll,Debugging,我知道debug=true在任何生产服务器上都是一件坏事 我目前使用的是来自第三方的一些DLL,并且是在调试模式下编译的,并且想知道,在调试模式中,Dell在Debug=false中的DLL中发生了什么?< P>在C./.NET中(与C++ + DLL不同),通常不是问题。调试和发布几乎是相同的,没有内存管理问题(如C++ DLL)。 以下是jaybaz的: 人们通常认为调试和发布之间的区别有三点。您需要决定您感兴趣的是: “调试”预处理器标志。可以使用“csc/define”在整个程序集/网络
我目前使用的是来自第三方的一些DLL,并且是在调试模式下编译的,并且想知道,在调试模式中,Dell在Debug=false中的DLL中发生了什么?
< P>在C./.NET中(与C++ + DLL不同),通常不是问题。调试和发布几乎是相同的,没有内存管理问题(如C++ DLL)。 以下是jaybaz的: 人们通常认为调试和发布之间的区别有三点。您需要决定您感兴趣的是: “调试”预处理器标志。可以使用“csc/define”在整个程序集/网络模块上设置,也可以使用#define在整个文件上设置 调试信息(pdb)。设置为“csc/debug[+|-]”。它不影响codegen,所以它真的不是很有趣 优化。设置为“csc/优化[+|-]”。在托管代码中,运行时的抖动几乎完成了所有优化。此标志生成的IL差异非常小。Whidbey C#编译器在这个标志上与以前的版本相比有更多的不同,但仍然不多 < C++ > .NET中(与C++ +DLL不同)一般不成问题。调试和发布几乎是相同的,没有内存管理问题(如C++ DLL)。 以下是jaybaz的: 人们通常认为调试和发布之间的区别有三点。您需要决定您感兴趣的是: “调试”预处理器标志。可以使用“csc/define”在整个程序集/网络模块上设置,也可以使用#define在整个文件上设置 调试信息(pdb)。设置为“csc/debug[+|-]”。它不影响codegen,所以它真的不是很有趣 优化。设置为“csc/优化[+|-]”。在托管代码中,运行时的抖动几乎完成了所有优化。此标志生成的IL差异非常小。Whidbey C#编译器在这个标志上与以前的版本相比有更多的不同,但仍然不多如果在调试模式下编译,则AFAIK编译器不会优化二进制数据,从而使调试器变得容易。在某些情况下,这可能会导致性能不佳。此外,编译器还为调试器的生成添加了额外的数据
我假设您谈论的是ASP.Net网站以及在调试模式下编译的dll与在发布模式下编译的dll。AFAIK如果在调试模式下编译,编译器不会优化二进制数据,从而使调试器更容易。在某些情况下,这可能会导致性能不佳。此外,编译器还为调试器的生成添加了额外的数据
我假设您谈论的是ASP.Net网站以及在调试模式下编译的dll与在发布模式下编译的dll。system.web/compilation配置元素的debug属性对编译的dll的代码没有影响
它只影响动态编译的代码,并且对运行时有一些其他影响(例如,如果debug=true,则忽略system.web/httpRuntime配置元素的executionTimeout元素)。system.web/compilation配置元素的debug属性对已编译DLL的代码没有影响
它只影响动态编译的代码,并对运行时有一些其他影响(例如,如果debug=true,则忽略system.web/httpRuntime配置元素的executionTimeout元素)。在.NET中,大多数优化留给JIT进行,但也有一些优化(通常针对大小)在.NET中,大多数优化都留给JIT进行,但是有一些优化(通常是大小优化)并没有按照您所说的那样进行,以使调试更容易。