看板 Android 關於我們 聯絡資訊
※ 引述《Colaman ()》之銘言: : App很肥 系統再瘦都救不了他沒錯 但是... : 在oom之前 android 還有 application framework的OOP以及android kernel的LMK : 所以也沒有那麼快跳到oom-killer 而且Google很愛在這邊偷吃步 系統只要進入認定的記憶體不足狀態,就會開始從高oom_adj開始清理, 當系統開始依照OOM_ADJ清理完畢後,那些被清掉的APP,下次就要重新load, 點APP到畫面出來就要一陣子, 我的GPlayer為了有人說關掉也耗記憶體,我就在退出APP的時候整個釋放掉. 結果過幾天,又有人跟我說"從LAUNCHER點GPlayer"要等好幾秒才有畫面.... 現在都是高階機子,記憶體問題比較不會覺得卡,但一樣會有啟動緩慢的問題 何況如果還有一個LMK在背後弄,重點是這個LMK各OEM非常喜歡調整, 尤其是低階RAM的機種,因為這些OEM為了要過CTS以防一堆離奇的問題, 為了要過monkey以防memory leak的問題,總是很喜歡在這邊動手腳. 一個真實的案例,某OEM某1G機台,在一個測試流程中,某OEM自製的底層APP 可以重複被kernel的LMK,KILL高達300次以上,結果造成某server,memory leak, 暴肥了一百MB,本來就沒有多少空間可以用,跑了一陣子測試後,因為記憶體不足, 甚麼APP都開不了. 該OEM為了解決這個問題,直接把該APP設定成永遠不能砍,可是記憶體就永遠少了好幾十MB, 重點是這個OEM自製的底層功能,我是一輩子都不會去用它的...XD 很多事情消費者是沒有選擇的權力,OEM選擇用了低RAM,消費者只會看傳單跟DM, 根本沒人會注意細節,或者開機有多少可用,可以釋放到多少,這才是為甚麼ANDROID低階機 體驗總是有限制.(有點跟最近的假油一樣) USER PID PPID VSIZE RSS WCHAN PC NAME u0_a159 22329 1940 715244 127784 ffffffff 40048a70 S com.facebook.katana u0_a179 23603 1940 549664 50888 ffffffff 40048a70 S com.facebook.orca u0_a159 28225 1940 494260 46152 ffffffff 40048a70 S com.facebook.katana:nodex : App肥也不見得會引發oom-killer 要看肥app在AMS的哪裡啊@@ : 再來 : 如果提到了oom/lmk/pmem/實體記憶體512MB 為什麼這裡是用VSS計算? : 從oom/lmk的眼光 應該討論RSS 不好意思,上面那邊文章打錯了,把G-Protector看到的數值打成VSS, 我查了一下我的做法確實是RSS加總沒錯, (把同屬一個APK使用到的每個process的RSS加總起來,應該是非常正確的檢驗方式) 請看我上面貼的PS LOG. 臉書124MB 一個不知名的臉書服務remote service(45MB), 臉書即時通49MB CHROME 也是 85MB +70MB 兩個 u0_a146 10127 1940 711316 85920 ffffffff 40048a70 S com.android.chrome u0_i9 10161 1940 583180 70300 ffffffff 40048a70 S com.android.chrome:sandboxed_process0 : 從App開發者的眼光討論App肥不肥 應該優先討論PSS更甚USS以及RSS 我剛上一篇的數據是RSS加總沒錯 :P 雖然說明打錯了,可是數據是該package使用的RSS的總和 : 算VSS total來討論會不會頂到512MB實體記憶體頂是不是怪怪的? VSS都400-500的 @_@ 不會有50MB那麼小 : procrank也只算有意義的PSS/USS total給人看 不是嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.173.159
Colaman:我沒有質疑app太肥導致使用者經驗不良的問題,我回文想說 11/10 15:39
Colaman:的是1. 通常不會這麼快該oom-killer現身 2. 應該不是VSS 11/10 15:40
Colaman:對於1.的小附註是oom-killer起來之前 要看ams跟lmk的設計 11/10 15:40
Colaman:以及app的撰寫方式 JB 4.1開始Google就更改了一些adj計算 11/10 15:41
gpc:不好意思,VSS是我打錯了,我提供的數據是RSS總和 11/10 15:42
Colaman:方式 (打太快 不是"就更改" 是又更改) 11/10 15:42
gpc:我說的真實案例是4.2的機子呢XD 11/10 15:42
gpc:你在市面上可以買到他Q_Q 11/10 15:43
Colaman:所以說 有這種512MB這種說法 也有可能是又有新的計算方式 11/10 15:43
gpc:重點是OEM阿啊 應該沒有OEM願意出BSP版的低階ANDROID 11/10 15:44
gpc:(老闆會罵) 11/10 15:44
Colaman:我舉個極端但不會發生的例子 假設Google改成fg的adj=0 11/10 15:45
Colaman:然後除此之外的人不管有沒有service之類的 通通都是7 11/10 15:45
Colaman:那就是其實我們只要看fg app的記憶體使用量 11/10 15:46
gpc:這樣就會一直被殺 然後卡翻天 11/10 15:46
Colaman:當然這例子不會發生 但我的意思是這些調整也都會影響 11/10 15:46
gpc:APP用到一半就突然爆掉 @@ 11/10 15:47
Colaman:被定義的"所謂重要的"東西的記憶體使用量 11/10 15:47
gpc:google AMS跟OOM的計算 我至少trace到4.3的code,不覺得有甚麼 11/10 15:47
Colaman:(更正: 使用量"上限") 11/10 15:48
gpc:不是感覺有甚麼大改變Q_Q 1G-RAM搭配OEM的東西後 還是很慘 11/10 15:48
Colaman:結論是: 如果Google有宣稱所謂的可以不可以用512MB運行 11/10 15:49
gpc:GOOGLE指的應該就是BSP版吧 他自己做的 OEM跟你裝的不保證 11/10 15:49
Colaman:就算是他的定義裡面也包含了"重要app" 這也可以是被從code 11/10 15:50
gpc:可是GOOGLE也不會出512版的BSP,OEM也沒人會出..有點是空談 11/10 15:50
Colaman:裡面定義的 11/10 15:50
gpc:重要的APP是臉書 LINE CHROME這樣512夠嗎XD 11/10 15:52
Colaman:OEM願意啊...(抽屜立刻拿出拿出兩支不到1000 RMB的機子) 11/10 15:52
gpc:糟糕 我這家不願意XD 可能公司有偶像包袱吧 11/10 15:53
Colaman:我覺得我們不能只用我們的使用習慣來看 有的OEM進行著甚至 11/10 15:53
gpc:我是從OEM來看的.... 11/10 15:54
Colaman:是256MB以及128MB的ultra low-end android案子 (不唬爛) 11/10 15:55
gpc:我這邊的OEM就是不管RAM多少 機子多爛 一定要把老闆認為的亮點 11/10 15:55
gpc:放到產品中 不管效能... 11/10 15:55
Colaman:原因就是我們生活的世界不是整個世界XD 11/10 15:56
gpc:你提的那些OEM是主打比較小眾or便宜的市場吧 11/10 15:56
gpc:ANDROID主要市占率 賣百萬台以上的 大都是我這邊OEM的想法~.~ 11/10 15:57
gpc:看看H牌低階機 還是一堆H公司的軟體 S牌也是 11/10 15:58
Colaman:我自己把話題扯遠了 我的意思還是:我們知道512MB對於我們 11/10 15:58
gpc:以前的M牌低階機也是 所以才有人要在那刷ROM 刷來刷去 11/10 15:59
Colaman:的使用者經驗完全不夠 但這是被我們定義的使用者經驗 11/10 15:59
Colaman:不是喊出"4.4 512MB就夠"的人所定義的 更不是 11/10 16:00
gpc:好吧 特殊用途的人可以用512MB 那GOOGLE要加警語了 11/10 16:00
Colaman:想要出256MB/128MB的人定義的 而這些都可以從code裡面定義 11/10 16:00
gpc:感覺GOOGLE這口號 跟假油很像=.= (XXX是國外的健康食品) 11/10 16:01
gpc:你說的這些我都知道~.~ 問題是主要的OEM 根本做不到 11/10 16:03
gpc:除非是小公司或是主打小眾市場 或者自己開公司做機子 11/10 16:03
gpc:主要的OEM才是決定ANDROID市場的存亡 11/10 16:04
gpc:不然H牌S牌為什要投注那麼多資金在ANDROID 一切都是$$$$$$$ 11/10 16:04
Colaman:喊出"4.4 512MB就夠"這種口號 就我自己的經驗我覺得更像 11/10 16:04
gpc:而OEM也不曾為了GOOGLE說的低階機種而改變 他們還是做自己的 11/10 16:05
Colaman:是給OEM建議 舉例來說 T-Mobile的G1 HTC的TMO版Magic 11/10 16:05
gpc:很多東西 沒有市占率就是沒意義啊 市占率不是靠內容 廣告行銷 11/10 16:06
gpc:廣告行銷也是影響市占率很大的原因 11/10 16:06
gpc:那些OEM已經回不去啦.... (我已經建議過了,無效QQ_) 11/10 16:06
Colaman:都在android成長(咦)的過程中 因為RAM達不到"喊出"的數值 11/10 16:06
Colaman:而沒有繼續跟著前進(RAM是其中一個重要理由 但不是唯一) 11/10 16:07
Colaman:是什麼樣的「RAM達不到"喊出"的數值」狀況? 他們連開機 11/10 16:08
gpc:老機子OEM都不會有team維護的 他們就一直出新機賺錢阿.. 11/10 16:08
Colaman:到lockscreen或是home之前就會出現lmk砍home的窘況了 11/10 16:08
gpc:我知道你想指出比方說某H公司說某機因為RAM太小不升級 11/10 16:08
gpc:其實只是不想維護而已XD 11/10 16:09
gpc:維護要人力 要$$$$$ 11/10 16:10
gpc:至於新出的低階機 一樣是因為老闆要求"公司精神"一定要在機子 11/10 16:10
gpc:所以也不可能出BSP版本的... 11/10 16:10
Colaman:這種囧況已經是連使用者經驗都不用提的啊 開不到主畫面 11/10 16:10
Colaman:有啊 new htc one跟SGS4的GEP on Google Play 11/10 16:12
gpc:結論就是 4.4 可以512MB 是指不含三方與OEM的使用情況 11/10 16:12
Colaman:舉這兩個例子不是要反駁你的說法 我只是想說 11/10 16:13
gpc:那個是google要求的阿XDXD 11/10 16:13
gpc:而且台灣買不到 ~.~ 毫無行銷可言 想買有夠麻煩 11/10 16:14
gpc:這樣的機子也不會有市占率.. 11/10 16:14
Colaman:他們的狀況以及定位就很像當年的T-Mobile的G1/Magic 11/10 16:15
Colaman:G1 "以及" Magic 11/10 16:16
Colaman:反正我覺得512MB這種數字是喊給BSP provider跟OEM聽啦 ~.~ 11/10 16:17
Colaman:OEM自己就會去評估自己額外要加的東西會吃多少 11/10 16:19
gpc:恩恩 真的會不會有機子 不是只有底層好就有 OEM做不做是一回事 11/10 16:19
gpc:(偏偏大間的OEM自己是不會做這種事情) 11/10 16:19
Colaman:然後有眼光的OEM就會用512MB + 自己的功能使用量 + 11/10 16:19
Colaman:評估過的銷售對象使用者經驗使用量 11/10 16:20
gpc:(OEM:幫GOOGLE做機子,賺沒幾毛,我掛我自己的牌子,放一些我APP 11/10 16:20
gpc:價格給他多個五成,賺爽爽...要不是為了還GOOGLE人情...) 11/10 16:20
gpc:有眼光的OEM都會出那種賺很多錢的.ANDROID.. 11/10 16:21
Colaman:沒眼光的OEM就會出那種光自己軟體都跑到會low memory的 11/10 16:22
gpc:因為大間的OEM實在有很多成本啊 人.專利.版權 都是無形的 11/10 16:22
gpc:可是那些出自己軟體跑到沒記憶體的 還是賣的很好阿 11/10 16:24
gpc:因為USER不懂這些 他們看廣告 代言 推銷員 打手 11/10 16:24
gpc:看外觀 看品牌 看潮流..就是不看技術的東西 11/10 16:25
gpc:所以市場就被定位成 要包裝才能生存 不包裝就是被當山寨 11/10 16:25
gpc:大間的OEM還是只會跟著大眾消費者跑 11/10 16:26
gpc:很多USER(非常非常多)都不會上PTT也不會上ANDROID版 11/10 16:28
gpc:他們有問題也就直接去找店面 店家 11/10 16:28
Fonger:躺驗的ˊ內監APAP 11/10 22:39
qweqweqweqwe:記憶體最近越來越貴. 相信大家很快就會看到512的產品 11/10 23:57
christian12:神之間的對話 11/11 00:57
richjf:野火的復歸 春風吹又生 XD 11/11 12:47