各位前辈好,小鲁写了一只程式可以依我个人一些特殊需求来改变桌布,
实作的方法大概就是抓取指定的数张图片,
使用 Drawing 里面的方法将图片拼接后输出成图档,再设定其为桌布,
在拼接的过程中会 new 出几个需要 Dispose 的物件,
由于来源也都是可以当成桌布的高画质图片,所以我蛮担心内存的使用状况
实际测试,每 5 分钟运作一次图片输出,
开启程式让它运作后观察工作管理员,刚启动时约占用 30Mb,
当执行图片拼接的程式后会飙升 10Mb 左右,
大概需要运作 1-3 次,也就是 40-60Mb 时,才会跳回 30Mb(执行内存回收?)
这算是正常使用的状况,看起来没有太大的问题,
但是我又测试了压力状况,将运作的频率提高到 1 秒一次,
这下就精彩了,内存的用量根本直线上升,
待机什么都不做只放著的话,可以冲到1G以上的用量,
但是时候差不多的时候,还是会乖乖跳回30Mb(尽管只有一瞬间),
所以可以推测应该是没有 Memory Leak
是不是程式执行的频率非常高,导致系统没空或是还不确定是否能回收记忆?
我的code原则上都是用 using,或是用完就 Dispose 的写法,
感觉程式这种表现不是很令人满意,
是否有更快的方式命令系统把物件的内存吐出来呢?