2013-11-02 3 views
9

우리는 하이브리드 모드의 포괄적 인 iOS 앱을 보유하고 있습니다. UIWebView는 JS에서 웹 애플리케이션의 주요 부분을 담당합니다. iOS6에서는 정상적으로 작동하지만 최근에는 iPad, iPhone 4/4S 및 iPhone 5/5C/5S와 같은 모든 iOS7 장치에서 심각한 메모리 부족 현상이 발생했습니다. 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이 설치된 원시 사파리 브라우저 모두 메모리 관리에 문제가있는 것으로 보입니다. 중첩 된 구조가있는 사전이 있고 그 중 하나를 숫자 문자열로 사용하는 경우 99999보다 작 으면 메모리 경고가 자주 수신 될 수 있습니다.

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

작품은 주위 간단

일 등, 키 "ID98304"와 같은 "98,304"뭔가를 교체하려고합니다. 문제가 이미 해결 되었기를 바랍니다. :)

+0

이 문제는 언제 해결됩니까? – wawanopoulos

+0

버그 15476175가 11 월 14 일에 Apple에 제출되었으며 현재 상태 업데이트가 없습니다. –

1

나는 upvote 또는 코멘트에 충분한 명성이 없습니다. 그래서 저는 "대답"이 제가 기여할 수있는 유일한 방법이라고 생각합니다.

나는 Ming Zhu의 공헌에 동의합니다. 5 자리 숫자 키 (9999 < 키 < = 99999)가 있으면 iOS 7의 메모리 사용량이 폭발적이라는 것을 알았습니다.

다음은 내 응용 프로그램을 재현하려고 할 때 사용한 예제 코드입니다.

tempobj = {}; 

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

나는이 유래를 발견하기 전에 애플에 버그를 제출하지만 어쨌든 좋은 일처럼 보인다 않았다.