首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >web.config中的debug=true =坏事?

web.config中的debug=true =坏事?
EN

Stack Overflow用户
提问于 2009-03-07 09:15:25
回答 3查看 61.5K关注 0票数 59

我们看到大量的虚拟内存碎片和内存不足错误,然后它达到了3 3GB的限制。

编译调试在web.config中被设置为真,但我从我问到的每个人那里得到了不同的答案,调试设置为真是否会导致每个aspx编译到ram的随机区域,从而使ram碎片化,并最终导致内存不足问题?

EN

回答 3

Stack Overflow用户

发布于 2009-03-07 10:09:02

在web.config中,调试标志应该设置为false,除非您确实需要调试应用程序。

在调试模式下运行会在一定程度上增加内存使用量,但不太可能出现像您所说的那样严重的问题。但是,您应该将其设置为false,以消除它所具有的效果,并查看是否可以注意到任何改进。

在调试模式下运行时,垃圾回收的工作方式不同。变量的生命周期从它的实际使用扩展到变量的作用域(以便能够在调试器中显示值)。这会使一些对象在被垃圾回收之前存活更长时间。

在调试模式下编译时,编译器不会优化代码,而且还会添加一些额外的nop指令,以便每行代码至少有一条可以放置断点的指令。

在调试模式下抛出异常所需的时间要长得多。(但是,通常情况下,代码不应该经常抛出异常。)

票数 13
EN

Stack Overflow用户

发布于 2009-03-07 09:33:29

AFAIK "debug = true“不会导致您提到的情况。

我曾经在ASP.NET应用程序中遇到过同样的问题,该应用程序可以动态创建图像。

因此,我认为您遇到了未处理资源的问题。

如果将带有代码隐藏文件的aspx文件部署到服务器。当请求到达aspx时,它将被编译一次。然后,它将被存储到缓存中,直到文件发生更改。

票数 3
EN

Stack Overflow用户

发布于 2010-05-19 05:51:19

在生产系统上,始终设置Debug=false。正如该标志所暗示的那样,只有在调试开发系统时才应将其设置为true。

此标志与您的内存碎片问题无关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/621572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档