摘自
1.迴圈中物件占用記憶體大
這個問題常見於迴圈次數較大,迴圈體生成的物件占用記憶體較大的情景。
例子**:我需要10000個演員來打仗
1
2
3
4
for
(int i = 0; i < 10000; i ++)
該迴圈內產生大量的臨時物件,直至迴圈結束才釋放,可能導致記憶體洩漏,解決方法和上文中提到的自動釋放池常見問題類似:在迴圈中建立自己的autoreleasepool,及時釋放占用記憶體大的臨時變數,減少記憶體占用峰值。
1
2
3
4
5
6
for
(int i = 0; i < 10000; i ++)
}
然而有時候autoreleasepool也不是萬能的:
例子:假如有2000張,每張1m左右,現在需要獲取所有的尺寸,你會怎麼做?
如果這樣做
1
2
3
4
for
(int i = 0; i < 2000; i ++)
用imagenamed方法載入占用cache的記憶體,autoreleasepool也不能釋放,對此問題需要另外的解決方法,當然保險的當然是雙管齊下了
1
2
3
4
5
6
for
(int i = 0; i < 2000; i ++)
}
以後有其他收穫,會隨時補充
一些小細節
1 c中printf計算引數時是從右到左壓棧的。定義乙個陣列 int arr 再定義乙個指標 sint prt arr printf d n ptr 此時ptr指向第乙個元素6 ptr 123展開為 ptr ptr 123 ptr 此時ptr指向第二個元素7 printf d,d n ptr,ptr...
response一些小細節
1 response 向客戶機輸出資料。2 位元組流 outputstream 可以輸出任何的資料,而字元流 writer 只能寫字元資料 3 respone.setheader content type text html charset utf 8 控制瀏覽器,指定編碼是utf 8 上面語句等同...
SQL SERVER 一些小細節
一.計算列的寫法 create table dbo test birthday varchar 8 collate chinese prc ci as not null constraint df tbl account birthday default convert char 8 getdate...