這篇文章描述了使用 compress 並不會減少實際記憶體使用量
以及解決方法
========================= 問題描述 =========================
我有一個 ByteArray 為了節省記憶體 所以要壓縮
var byteArray:ByteArray = 某個很大的ByteArray;
我先觀察一下資料量
var length1:int = byteArray.length;
之後使用壓縮函數
byteArray.compress();
再次觀察
var length2:int = byteArray.length;
看一下壓縮比
trace((1-length2/length1) * 100 + "%");
印出來是 99.xxx%
但是觀察記憶體使用量卻沒有下降
========================== 解決方法 ====================
複製一份 byteArray
var byteArray2 :ByteArray = new ByteArray();
byteArray2.writeBytes(byteArray);
然後把舊的替換掉
byteArray.clear();
byteArray = byteArray2;
就可以看到記憶體確實下降了
沒有留言:
張貼留言