none
記憶體相關問題 RRS feed

  • 一般討論

  • 最近有客戶系統突然開始出現OutOfMemoryException, 也開始重視自己寫的程式記憶體使用量情況, 已經找了滿多相關討論串了, 但有些問題還是有點模糊.

    1.同一隻程式同一台電腦,測試多次每次出現OutOfMemoryException的時機點都不樣, 有時100M, 有時60M !! 有找過討論串:[單一程式不得超過總實體記憶體60%],我想問的是適用於Web和WinApp專案嗎?那App專案該如何設定此值?

    2.雖然後來有使用GC.Collect, 記憶體增加速度有明顯變緩, 討論串也建議非必要由CLR自行決定, 想說我使用 VS2008專業版, 不知有沒有工具可以測試自己本身程式碼記憶體使用量

    3.離線資料庫操作滿耗費記憶體, 在我的程式算大量使用, 基本用法為一個Form開始Fill幾張表, 然後做些增 刪 修 查尋功能, 爾後讓使用者點選關閉表單(純粹用Close), 想請問是否要在離開前針對DataSet 或  DataTable 做些處理, 可以釋放掉些記憶體 還是 Close之後, 該頁所用到的物件將會被認定可回收?

    2010年10月6日 下午 04:29

所有回覆

  • 1. 那是 w3wp.exe / aspnet_wp.exe 的特殊機制。你的程式執行檔名是這個嗎?

    2. MSDN 也建議使用者少用 API 以免造成例外。建議是一回事,需求是另一回事,沒有需求就不會有這玩意。

    3. 基本上加上分頁,且利用 SQL 語法分頁,問題就會少很多。.Net 很自動方便,相對的就要付出效能與資源的成本,想要節省資源,很多自動的功能就要變手動。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年10月7日 下午 02:55