2013-11-02 48 views
9

我們有一個全面的iOS應用程序混合模式 - 一個UIWebView在JS中的Web應用程序的主要部分。它在iOS6上運行良好,但最近我們發現所有iOS7設備(iPad,iPhone 4/4S和iPhone 5/5C/5S)發生嚴重的內存不足崩潰。我們在iOS模擬器的iOS6和7上分析了內存消耗。通過在應用程序中進行相同的交互,iOS6中WebView的內存消耗總是低於200MB,而在iOS7上它可以超過800MB

我們猜想iOS7上的WebView存在一些嚴重的內存管理問題。但缺乏在WebView中剖析JS的工具,我們找不到根本原因。 在這裏,我們想問問任何人是否有類似的問題,並且任何工具/方法都可以幫助進一步深入瞭解UIWebView以挖掘確切的問題。謝謝。iOS7 UIWebView內存泄漏

+1

這似乎與http://stackoverflow.com/questions/19150961/ios7-webkit-crashes-frequently-not-freeing-up-memory –

回答

0

在處理json對象時,UIWebView和iOS7本機Safari瀏覽器似乎在內存管理上都有問題。 如果您的字典具有深嵌套結構,並且您碰巧有一個關鍵字是數字字符串,並且它小於99999,則可能會經常收到內存警告。

類似,

{"**98304**": 
    {"key": 
     {"2ndLevelKey": 
      { 
       "address":"10928 Homestead rd","city":"Cupertino","Zip":95014 
      } 
     } 
    } 
} 

周圍的工作很簡單,嘗試更換鍵 「」 像 「ID98304」。 希望你已經解決了這個問題。 :)

+0

當這個問題將被修復? – wawanopoulos

+0

錯誤15476175於11月14日提交給蘋果公司,迄今爲止沒有更新狀態。 –

1

我沒有足夠的聲望來upvote或評論。所以我認爲「答案」是我可以貢獻的唯一方式。

我同意朱明的貢獻。我發現如果你有5個數字鍵(9999 <鍵< = 99999),iOS 7上的內存使用量會爆炸。

下面是我在嘗試重現崩潰我的應用時遇到的示例代碼。

tempobj = {}; 

for(var i=1; i<2000; i++){ 
    var temp = {}; 
    tempobj[i] = temp; 
    temp[98304] = "hello world"; 
} 

在找到這個計算器之前,我也向蘋果提交了一個bug,但看起來這是一件好事。