簡體   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