2010-01-16 1 views
8

를 해결하기 위해, 애플은 최근 자신의 휴대폰 (아이폰 3G와 아이팟 터치 2g)에 추락 말하고, 나에게이 충돌 로그를 보내, 내 응용 프로그램을 거부했다. 어느 것이 든 내가 이해할 수없는 것.애플은 왜 아무 생각이 나를 거부하지, 또는 어떻게 그렇게 heres는 그것에게 이야기를

여기 있습니다.

Incident Identifier: BA4382DD-DA6A-47F7-800D-43AD30919064 
CrashReporter Key: 53e41ca2a52f91affddc86f49ce9c4be851fcfd6 
OS Version:   iPhone OS 3.1.2 (7D11) 
Date:    2010-01-14 15:59:57 -0800 

Free pages:  317 
Wired pages:  11274 
Purgeable pages: 0 
Largest process: iConicCars 

Processes 
     Name     UUID     Count resident pages 
     amfid <b4f3e5a61456edf85b6ada59064ec311>  93 
    iConicCars <851d264eb074e465891dcd67b67a8e79> 5928 (jettisoned) (active) 
    MobileMail <0798395dde43ca46317db6e674dfbbfd>  503 (jettisoned) 
MobilePhone <82c9bd8583f4b09706a16b08e641a4b9>  464 (jettisoned) 
    notifyd <d6b12a4e424e10e5ce91efd8d39f22af>  77 
    BTServer <c940c4c7252113a7303cc1f7d1429c17>  253 
    CommCenter <b1d6c4fe3ce2bc0374471196ab15b8d4>  313 
SpringBoard <c5c29b56a2bb445fc73203e03f67fa78> 1954 (active) 
    accessoryd <32ceed5c3c32625ac23cd870f61364af>  107 
    configd <aae411e8289912124271f109ceee8f85>  290 
    fairplayd <cdce5393153c3d69d23c05de1d492bd4>  156 
    mDNSResponder <db98efaea94329959789f73a16f9f46e>  123 
mediaserverd <612fbbfa0546609cf6c6b13ae6f333cf>  767 (jettisoned) 
    lockdownd <171865bfe3725c3d5047df8c00ed5d77>  294 
    syslogd <1cb3e9f2375fad9e345bd16655be4a50>  66 (jettisoned) 
    launchd <c5bc115d47313218505394f96770782a>  76 

**End** 

Incident Identifier: 8E52889B-0260-4AAD-A39C-FC170FB637D4 
CrashReporter Key: 45d118e8a4be9b3163eab905af870f05dfddb12d 
OS Version:   iPhone OS 3.1.2 (7D11) 
Date:    2010-01-14 13:41:31 -0800 

Free pages:  309 
Wired pages:  12550 
Purgeable pages: 0 
Largest process: iConicCars 

Processes 
     Name     UUID     Count resident pages 
     iConicCars <851d264eb074e465891dcd67b67a8e79> 5641 (jettisoned) (active) 
     SCHelper <b87bd080a670f9512426e8721dc1f03c>  103 
      misd <a41e5d5f4b8922ab272c55df84aec4fd>  140 
    installd <620ede129454bcd824f0b6cec13b15d3>  212 
SpringBoard <c5c29b56a2bb445fc73203e03f67fa78> 1545 (jettisoned) (active) 
     iapd <fea164e93479b90e1dd39a293dd3865c>  251 (jettisoned) 
    syslogd <1cb3e9f2375fad9e345bd16655be4a50>  83 (jettisoned) 
mediaserverd <612fbbfa0546609cf6c6b13ae6f333cf>  302 (jettisoned) 
    BTServer <c940c4c7252113a7303cc1f7d1429c17>  345 
    lockdownd <171865bfe3725c3d5047df8c00ed5d77>  279 
    notifyd <d6b12a4e424e10e5ce91efd8d39f22af>  104 
    CommCenter <b1d6c4fe3ce2bc0374471196ab15b8d4>  151 
    configd <aae411e8289912124271f109ceee8f85>  264 
    fairplayd <cdce5393153c3d69d23c05de1d492bd4>  517 
    mDNSResponder <db98efaea94329959789f73a16f9f46e>  100 
    launchd <c5bc115d47313218505394f96770782a>  67 

**End** 

재부팅 후에도 차이점은 없습니다. 키커가 내 iPhone 3GS에서 완벽하게 작동하고 메모리 누수가없는 시뮬레이터에서 작동합니다.

그래서 지구상에서 나는 무엇을합니까?

UPDATE : [. 세션 2010-01-16 20시 1분 44초 1300에서 시작] 시뮬레이터에 대한

로그인 GNU GDB 6.3.50-20050815 (애플 버전 GDB-1346) (금 9월 18일 세계 협정시 20시 40분 51초 2009) 저작권 2004 자유 소프트웨어 재단, 주식 GDB는 GNU 일반 공중 사용 허가서에 의해 덮여 무료 소프트웨어입니다, 당신은 그것을 변경 및/또는 아래의 사본을 배포 할 환영합니다 특정 조건. "show copying"를 입력하여 조건을 확인하십시오. GDB에 대한 어떠한 보증도 없습니다. 자세한 내용은 "보증 표시"를 입력하십시오. 삽입 된 라이브러리를로드 할 수 없습니다 :

데이터 포매터 /usr/lib/libgmalloc.dylib 이 GDB 적용 부하가-규칙 .sharedlibrary 모든 는 1152 dyld을 처리하기 위해 연결 "x86_64에 - 사과 - 다윈"로 구성되었다 일시적으로 사용할 수 없으며 '계속'후에 다시 시도합니다. (현재 로더를 호출 할 수 없으면 잠겨 있습니다.) 경고 : "_sigtramp"에 대한 최소 기호를 찾을 수 없습니다 - 백 트레 이스를 신뢰할 수 없음 주소 0x0의 메모리에 액세스 할 수 없음 주소 0x0의 메모리를 액세스 할 수 없음 (gdb)

+0

업데이트 : 나는 2.8 메가 비트의 이미지를 응용 프로그램의 배열에 저장했습니다. 좋지 않습니까? 나는 더 작은 그림을 사용하는 비슷한 앱을 보면서 슬쩍 보였다. –

+0

파일 시스템에 2.8MB (JPG 크기와 동일)? 왜냐하면 한 번로드되기 때문에 메모리가 많이 필요하기 때문입니다. 사진을 더 크게 만들 수 있지만 필요에 따라 이미지를로드하려면 앱을 다시 작동해야 할 수 있습니다. –

+0

바탕 화면의 이미지 폴더는 2.8MB입니다. –

답변

5

다른 사람들이 말했듯이 너무 많은 메모리를 사용하고 있습니다.

여러 개의보기 컨트롤러를 사용하는 경우이 간단한 테스트를 시도하십시오. ObjectAlloc 인스트루먼트로 앱을 실행하십시오. 뭔가를 클릭하면 하위보기를 가져오고, 메모리가 증가해야합니다. 이제보기를 닫고 기본보기로 돌아 가면 메모리가 다운됩니다. 그렇지 않다면, 그것은 당신의 문제 (또는 어쨌든 그들 중 하나이지만, 그것이 likley 출발점입니다)입니다.

시도하고이를 추적, 장소 중단 점을 할당 해제에보기 컨트롤러 각각에 대해 실제로 호출되는 것을 참조하십시오.예상대로 해제되지 않은 뷰 컨트롤러의 경우, ObjectAlloc에서 객체에 대한 각 보유가 실행 된 위치를 볼 수 있고 수행하지 않아야하는 객체를 유지할 것인지 결정할 수 있습니다.

일반적으로 ObjectAlloc 흐름은 끊임없이 상승하는 것이 아니라 항상 올라가고 내려가는 그래프처럼 보입니다.

많은 이미지를 사용하는 경우 훨씬 더 큰 크기와 배율로 시작하는 대신 정확한 크기로 크기를 조정하는 것이 좋습니다. 많은 메모리를 사용하는 것은 이미지를 사용하고 해제하지 않아야하기 때문입니다. 보유하고있는 메모리에 대한 참조가 여전히 있다면 누출은 아무 것도보고하지 않습니다.

또한 테스트를 위해 이전 Touch를 구입하십시오.

+0

"많은 이미지를 사용하는 경우 훨씬 더 큰 크기와 배율로 시작하는 대신 정확한 크기로 크기를 조정하십시오." 그게 문제가 될 수 있다고 생각합니다. 방금 쓴 질문에 대한 의견을 읽으십시오. –

+0

나는 그것에 대해 언급했다. 실제로 모든 이미지를로드해야하는 이유는 없습니다. 이미지를 필요할 때만로드하고 사용하지 않는 이미지는 없애야합니다. –

+0

터치를 계속 사용해 보는 것이 좋습니다 ... 많은 도움이되었지만. 주된 문제인 것 같아서 기쁩니다. –

3

앱이 너무 많은 메모리를 사용했습니다. Instruments (Object Allocations 또는 Leaks)로 앱을 확인하고 메모리 할당을 줄일 수 있는지 확인하십시오.

+0

메모리 할당을 줄이는 좋은 방법은 무엇입니까? (NSString * string = @ "hello";) 또는 (NSString * string = [[NSString alloc] init ;;) –

+0

문자열의 경우 NSString * const string = 가능한 경우 @ "hello"; 당신이 그것을하는 경우에 너 자신 그것을'- 발표하는 것을 기억하십시오. – kennytm

2

앱이 너무 많은 메모리를 사용하고 있습니다. 128MB의 RAM을 가진 오래된 장치에서는 실행되지 않습니다.

+1

새 장치를 실행해야한다고 지정할 수 있습니까? 그들은 단지 더 빠르고 더 빨리 갈 것입니다. –

+0

당신은 정말로 최적화 시간을 보내고 모든 사람들을 위해 일할 수있을 때 신청을 사기 위해 10-20 억 명의 사람들을 달리기를 원하십니까? 게임의 경우 최신 OpenGL 기능 만 사용하려면이 인수를 참조하십시오. –

+0

nah .. 나는 그것을 최적화하려고 노력할 것이다. –

5

"무료 페이지 : 309"를 참조하십시오. 좋지 않다는 것은 메모리 잔뜩 사용하고 있다는 뜻입니다. 그리고 purgeable pages = 0은 교정 할 수없는 메모리이므로 메모리 문제입니다.

을 수행합니다 "구축 및 분석"당신이보다 효율적으로 실행할 수있는 메모리 누수와 장소를 찾을 수 및 실행 "누수".

+0

나는 누수가 없다. ALI 메모리는/계정으로 간주됩니다. –

3

iPhone 3GS와 시뮬레이터는 다른 iPhone OS 장치보다 훨씬 더 많은 메모리를 가지고 있습니다. 모든 장치에서 작업하려면 20MB를 넘지 않는 메모리를 사용해야합니다.

+0

얼마나 많이 사용하고 있는지 어떻게 알 수 있습니까? –

+0

계측기에서 앱을 실행 해 보았습니까 (실행 -> 성능 도구로 실행 ...) – kennytm

+0

예. 나는 나에게 좋아 보인다. (비록 그다지 말하는 것이 아닙니다.) –

관련 문제