java 板


LINE

※ 引述《AmosYang (Zzz...)》之銘言: ※ 引述《PsMonkey (痞子軍團團長)》之銘言:
1F:推 Killercat:Fragmentation在Android上還滿容易監測的就是 04/26 17:09
2F:→ Killercat:因為android的演算法相對簡單 看到heap/free比例不對 04/26 19:12
3F:→ Killercat:大概要猜也猜得出來發生什麼事情了(摸下巴) 04/26 19:13
我對 Android 不熟, 能否就「看到heap/free比例不對」多說一些? 感覺是個蠻有意思的方向, 感謝 orz ----- 我好一陣子(一兩年)沒寫Android了。Android來講,很多動作都會造成Fragmentation 這些都可以在DDMS(Android的一種除錯機制)看到Dalvik目前的記憶體使用情形 這東西有一個表格,可以列出你目前的記憶體使用情況 (順帶一提 當年Bitmap用的是完全不同的獨立空間,現在我不知道還是不是) 記憶體裡面有幾個數值,包括Used, Free, Heap 基本上Used很淺顯易懂就不解釋,Free也很直觀不解釋 重點在於最後一個Heap Android的Heap基本上是個只增不減的東西(4.0以後有新的做法 但是我已經沒在寫了) 他也是很直觀的"跟系統要的記憶體"數量,VM系統大概都是有這種類似概念 問題在於,Heap什麼時候會被allocate到呢?當然是app需要空間但是free卻不夠的時候 一直到這裡為止都還只是常識等級的概念 但是表格上有一個東西沒有提到,就是破碎度。 我先假設閱讀這篇的人都對破碎度有完全的了解,知道什麼是記憶體破碎 Free可能是破碎的,所以即使還有10M,但是App要從Free拿10M卻不見得拿的到 因為Free可能最連續的部分只有8M。有些VM實作的JVM會在GC的時候做Memory Trim Trim以後「也許」有機會拿到連續的10M 那就不用再去跟JVM靠背 所以大概也只有在最嚴苛的狀況下才會變成這篇文章提到的部分 但是這是Android,這東西是Dalvik,基本上是一個沙箱化的設計 他不可能在ui thread那麼猖狂的環境下沒事情給你trim一下 UI Thread = 超高負載 = 使用者體驗 = 消費者 = 所有系統都要極力討好的對象 Dalvik唯一合理的做法就是多跟heap要一點記憶體(通常就是直接要個10M了) 所以我們在DDMS裡面會看到Free在一定範圍內上上下下但是Heap卻越來越多 更慘的情況(像是以前我手機需要寫一個加解密Relay Server)下 基本上看Free就知道情況會越來越不妙,Free會開始節節高陞 但是大家都知道原因不是因為程式寫的好用的記憶體少 而是因為Android的記憶體配置策略簡單,而且不要說Trim 連GC都是不到最後關頭不幹 所以要是你寫的code會造成大量空洞化,或者Fragmentation越來越嚴重 你就會看到很神奇的Free/Heap比例,Heap不停長,Free也跟著長 反正大家都猜的到Free裡面是什麼?蜂窩嗎.... XD (這是一個當初Android開發者的雙關笑話,Android 3.0叫做Honeycomb蜂窩 而這剛好也是一個記憶體空洞化(讓整塊記憶體看起來像蜂窩)很嚴重的版本) 這很好猜,超好猜,我相信做久一點的或者做深一點的Android開發者都會碰到 看數字就知道發生什麼事情了. 現在的Dalvik我不知道,但是我那時代的Android之所以開機都馬不持久 一天大概要重開機個一次,我始終高度的懷疑跟這記憶體策略有關 叫我寫一個系統用這種策略 我大概得天天重新開機才行了... --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.18.161
※ 文章網址: http://webptt.com/m.aspx?n=bbs/java/M.1398525322.A.2B4.html ※ 編輯: Killercat (118.160.18.161), 04/26/2014 23:21:39
4F:推 AmosYang: 有趣 :D 感謝分享 orz 04/26 23:35
5F:推 gmoz:XDDD 04/28 11:35
6F:推 stiles:讚 XDD 05/06 17:32







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP