[問題] 記憶體回收速度差強人意
各位前輩好,小魯寫了一隻程式可以依我個人一些特殊需求來改變桌布,
實作的方法大概就是抓取指定的數張圖片,
使用 Drawing 裡面的方法將圖片拼接後輸出成圖檔,再設定其為桌布,
在拼接的過程中會 new 出幾個需要 Dispose 的物件,
由於來源也都是可以當成桌布的高畫質圖片,所以我蠻擔心記憶體的使用狀況
實際測試,每 5 分鐘運作一次圖片輸出,
開啟程式讓它運作後觀察工作管理員,剛啟動時約占用 30Mb,
當執行圖片拼接的程式後會飆升 10Mb 左右,
大概需要運作 1-3 次,也就是 40-60Mb 時,才會跳回 30Mb(執行記憶體回收?)
這算是正常使用的狀況,看起來沒有太大的問題,
但是我又測試了壓力狀況,將運作的頻率提高到 1 秒一次,
這下就精彩了,記憶體的用量根本直線上升,
待機什麼都不做只放著的話,可以衝到1G以上的用量,
但是時候差不多的時候,還是會乖乖跳回30Mb(儘管只有一瞬間),
所以可以推測應該是沒有 Memory Leak
是不是程式執行的頻率非常高,導致系統沒空或是還不確定是否能回收記憶?
我的code原則上都是用 using,或是用完就 Dispose 的寫法,
感覺程式這種表現不是很令人滿意,
是否有更快的方式命令系統把物件的記憶體吐出來呢?
--
我覺得C#是世界上最強的語言了 π紅膠咖咖褐希希C ◥▁▁▁▁ ◢ 麥
其他的應該廢除 省寶水啡啡雨嘉 # ◤ ██ /- 科
石 腳 燕嘉 □–□◢◤ 舒
如果各位有興趣的話,可以現在開始學 本 ▼ㄑ ◢ 服
但是要安裝VisualStudio ▼ㄧ /◣ 特
因為我們只會支援精英IDE,絕對不會接受垃圾 ψ ◢ /◣– ◤ /█◣
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.58.157
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1467399343.A.7A4.html
→
07/02 06:59, , 1F
07/02 06:59, 1F
喔喔 感謝 這招有用,程式占用的記憶體被鎖死在20Mb了!
→
07/02 08:47, , 2F
07/02 08:47, 2F
→
07/02 08:50, , 3F
07/02 08:50, 3F
就是一個感覺問題,因為把它做成系統常駐程式,當然是存在感越低越好
※ 編輯: stu87616 (114.25.58.157), 07/02/2016 11:40:44
→
07/02 14:13, , 4F
07/02 14:13, 4F
→
07/02 19:10, , 5F
07/02 19:10, 5F
→
07/11 11:48, , 6F
07/11 11:48, 6F
→
07/11 14:29, , 7F
07/11 14:29, 7F
→
07/11 14:30, , 8F
07/11 14:30, 8F
→
07/11 14:31, , 9F
07/11 14:31, 9F
→
07/11 14:31, , 10F
07/11 14:31, 10F
→
07/11 14:32, , 11F
07/11 14:32, 11F