各位前輩好,小魯寫了一隻程式可以依我個人一些特殊需求來改變桌布,
實作的方法大概就是抓取指定的數張圖片,
使用 Drawing 裡面的方法將圖片拼接後輸出成圖檔,再設定其為桌布,
在拼接的過程中會 new 出幾個需要 Dispose 的物件,
由於來源也都是可以當成桌布的高畫質圖片,所以我蠻擔心記憶體的使用狀況
實際測試,每 5 分鐘運作一次圖片輸出,
開啟程式讓它運作後觀察工作管理員,剛啟動時約占用 30Mb,
當執行圖片拼接的程式後會飆升 10Mb 左右,
大概需要運作 1-3 次,也就是 40-60Mb 時,才會跳回 30Mb(執行記憶體回收?)
這算是正常使用的狀況,看起來沒有太大的問題,
但是我又測試了壓力狀況,將運作的頻率提高到 1 秒一次,
這下就精彩了,記憶體的用量根本直線上升,
待機什麼都不做只放著的話,可以衝到1G以上的用量,
但是時候差不多的時候,還是會乖乖跳回30Mb(儘管只有一瞬間),
所以可以推測應該是沒有 Memory Leak
是不是程式執行的頻率非常高,導致系統沒空或是還不確定是否能回收記憶?
我的code原則上都是用 using,或是用完就 Dispose 的寫法,
感覺程式這種表現不是很令人滿意,
是否有更快的方式命令系統把物件的記憶體吐出來呢?