微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 百度音乐网站各种操作死机问题

百度音乐网站各种操作死机问题

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]

在百度音乐网站,进行一些操作,手机死机

[SOLUTION]

這是一個 百度音樂網站 的 known issue,
全部的 android device 目前都有同樣的問題,
在百度音樂網站, 在某些情況下,
某個連線動作被打斷了,
例如網路不穩定, 網路中斷, 網路狀態改變, 或不停地去 reload 之類,
都有可能會發生這問題,
我們有去追查過 root cause,
目前確認是 Javascript 出現了問題,
追查結果是因為 Javascript 發生了 memory leak 導致 out of memory.
在 Javascript 中, 如果我針對 array 中某個 index 去修改 value,
萬一這個 index 比原本的 array 還大時候,
這時候 array size 會自動成長到你所指定的 index 大小,
這是 Javascript 的一個特性,
當這個問題發生的時候,
Javascript 會不停地被呼叫
SetProperty(key, value)
主要是設定某個物件的 key value,
這時 key 被傳進來的值是一個越來越大的整數,
如果是整數, 會認為這物件是一個 array,
但因為 key 是一個很大的整數,
遠遠大於本身 array 的 size,
所以會自動針對這個 key 去增加本身 array 的 size,
不停地去 allocate 大量的 memory,
在發生問題的期間, SetProperty 會不斷的被呼叫,且 key 值會一次比一次還大,
甚至大到好幾十萬,
最後記憶體完全被 Javascript 所用光,
整個效能越來越差.
雖然抓到 Javascript memroy 出問題,
但這應該是 baidu 網站 Javascript 寫法的問題造成,
我們已經向 baidu 方面反應此問題,
希望 baidu 能修掉此問題,畢竟這是 baidu 音樂網站改版後才產生的問題,
baidu 也已經答應會去察看此問題.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top