2010-01-14 88 views
1

越來越:ASP.NET內存優化調度

aspnet_wp.exe (PID: 988) was recycled because memory consumption exceeded the 148 MB (60 percent of available RAM). 

的web.config文件等優化什麼建議嗎?已經完成了所有的調試/發佈編譯工作。但仍需要快速記憶。機器有512MB RAM,在512MB上運行平穩。想盡可能地擠壓它。在代碼中它也儘可能地保持低內存,但它只有50mb的數據。這一定是可能的。還是框架需要這麼多?

+2

你爲什麼試圖將ASP.Net放入這麼小的內存? – Earlz

+0

USB棒尺寸嵌入式系統;-)如果它運行在一種平臺上。我認爲它可以提升虛擬機中的真機xCore。 – csharpnoob

+1

有一些地方ASP.Net沒有設計去... – Earlz

回答

1

嗯,它應該適合,但它取決於你在做什麼,以及你正在運行的是哪個版本的IIS。運行

Optimizing Memory Usage (IIS 6.0)

服務器IIS從充足的物理內存的6.0利益。一般來說,您添加的內存越多,服務器使用的越多,執行得越好。 IIS 6.0需要至少128 MB的內存;建議至少256 MB。如果您運行的是內存密集型應用程序,那麼您的服務器可能需要更多內存才能以最佳方式運行 - 超過推薦的256 MB內存。

IIS 7.0 however has somewhat larger requirements

  • 最低:512 MB
  • 推薦:2 GB或更多

這篇文章對最佳化一些其他建議你可以進行,我會還推薦Tess Ferrandez的博客,特別是她的帖子".NET Memory usage - A restaurant analogy",它很好地解釋了內存分配,以及她在調試內存使用方面的其他帖子 - 這些帖子在類似的地方開始爲RickNZ's suggestions

+0

感謝所有的信息,對大家。我可以在磁盤上序列化我的應用程序,只保留內存中的基本例程。有用。但磁盤訪問意味着性能不佳。所以我會嘗試所有其他有意義的建議,不會影響速度和功能。但至少它可以工作。 – csharpnoob

2

您可以嘗試解除配置您不使用的所有HttpModules。例如,Windows身份驗證是常見的。

您也可以看看,你分配任何靜態變量。

在儘可能多的網頁儘可能禁用ViewState中可能會有點幫助。

最小化或消除從bin目錄或GAC中加載的任何額外DLL。

但是,這樣做不太可能通過狩獵和啄食來節省大量的記憶。如果你認真對待它,你需要一個內存分析器工具,比如SciTech的.NET Memory Profiler。他們有一個免費的兩週試用期。

+0

。我完全忘了。我先試試這個。減少HttpModules或者Dll可能會給內存帶來一點風險,但它可能會導致風險。 – csharpnoob

0

你把什麼放在記憶裏?

256mb遠低於服務器的容量,即使它是共享服務器,您可能有更多空間可以使用。

你緩存?

什麼操作系統,你運行?

就像RickNZ所說的那樣,儘可能地減少脂肪,可以爲你節省一些記憶。

老實說,我認爲你只是有一個不切實際的內存目標。