繁体   English   中英

ASP.Net应用程序池使用太多内存

[英]ASP.Net application pool use too much memory

我为在线游戏创建了asp.net asmx服务。 当它在生产服务器asp.net应用程序上运行时,使用1.5-3 GB的内存。

当我使用ANTS内存探查器时,我看到70%的应用程序内存可用,而C#对象使用100-200Mb。

我如何使asp.net将可用内存返回给OS? 如果我将在一台服务器上运行几个类似的应用程序,我会得到内存不足的异常。

二手技术:ASP.Net v4 Windows 2008 C#小型asp.net Cashe,用于硬数据库请求。

不幸的是,这是可能的。 如您所知,CLR在堆中使用2种参考对象,即标准对象和大型对象堆。 标准对象堆在垃圾收集器之后进行了碎片整理,但大型对象却没有,因为CLR团队认为这会导致性能问题。 这就是为什么LOH在使用过程中会消耗大量内存的原因。

大于85000字节的对象在LOH中分配,因此我的建议是分析您的代码以查找可以在LOH中分配的对象,并尝试使其变小。

希望这会有所帮助。 顺便说一句,目前还没有100%的解决方案,我们所有人都为此感到痛苦。

暂无
暂无

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

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