UIwebview가 dealloc-ed가되면 사용 된 메모리의 대부분이 완전히 재활용되지 않습니다. 일부 프로필을 수행 한 후, 나는 여전히 살아있는 메모리의 대부분을 찾을 수있는 글꼴 글리프 캐시 (중국어 웹 페이지를 열면 문제가 훨씬 더 심각합니다. 중국어는 문자가 많아 글꼴 모양이 더 많음).Font Glyph/UIWebView에서 메모리 누수가 발생했습니다.
캐시를 제어 할 수있는 방법이 있습니까? iOS 웹 브라우저에서 작업하고 있는데,이 문제는 2 주 동안 차단됩니다.
Attached는 간단한 repro 데모입니다. 1) "Allocation profile"메모리로 데모를 실행하십시오. 2) 주소 표시 줄에 http://www.163.com을 입력하고로드가 완료 될 때까지 기다리는 중입니다. 3) 계기 도구에서 소비 된 약 10M 메모리를 볼 수 있습니다. 4) 지우기 버튼을 클릭하십시오 (UIwebview가 시각적 트리에서 제거되어 재활용됩니다) 5) 9M 메모리가 계속 살아있을 수 있습니다.
현재 문제를 구분하기 위해 아래 코드로 NSURLCache를 사용할 수 없습니다. [NSURLCache sharedURLCache] setMemoryCapacity : 1]
모바일 사파리가이 문제를 어떻게 처리하는지 조사하고 있습니다. otool을 사용하여 임포트 기호 테이블을 인쇄 할 수있는 방법이 있습니까? otool -ov이 응용 프로그램에 정의 된 모든 기호를 인쇄하지만이 응용 프로그램이 다른 동적 라이브러리에서 링크 된 기호를 알고 싶습니다. class-dump-z를 사용하여 모든 헤더 파일을 덤프하지만 유용한 정보는 얻지 못합니다. –
실제 문제는 CoreGraphics의 draw_glyphs입니다. CGFontCreateGlyphBitmap 이후에는 비트 맵이 캐싱되고 캐시를 제어 할 수 없습니다. 그것은 유출 아니지만 iPad1에 내 응용 프로그램에 대한 문제가 정말 (텍스트가 많이) –
혹시 이것에 대한 답변을 찾았습니까? 또한 UIWebView 글꼴 메모리 문제를 피하려고합니다. –