2013-03-20 6 views
4

iOS 앱에 대한 메모리 경고 수준 1 및 수준 2가 있습니다. 문제는 모든 iPad 기기 (iPad 1에서 iPad 4, 미니까지)에 대한 경고를 보내는 응답 임계 값입니다. 예를 들어, iPad1의 경우 100MB입니까?모든 iPad 버전의 메모리 경고 임계 값

감사


또한 메모리 경고를받을 때 사용되는 메모리를 인쇄하는 데 사용됩니다.

연습과 메모리에서
#import "mach/mach.h" 
-(void) report_memory { 

    struct task_basic_info info; 
    mach_msg_type_number_t size = sizeof(info); 
    kern_return_t kerr = task_info(mach_task_self(), 
            TASK_BASIC_INFO, 
            (task_info_t)&info, 
            &size); 
    if(kerr == KERN_SUCCESS) { 
     DLog(@"Memory in use (in MB): %u", info.resident_size/1024/1024); 
    } else { 
     DLog(@"Error with task_info(): %s", mach_error_string(kerr)); 
    } 
} 
+1

중요합니까? 레벨 1 메모리 경고가 표시되면 레벨 2가 실행되고 앱이 종료되기 전에 앱에서 행동을 정리할 시간이 거의 없습니다. –

+0

제품에 다른 모든 장치를 지원해야하며 심각한 메모리 문제가있는 경우 (예 : 항상 메모리 경고가 튀어 나와 사장이 엉덩이를 걷어차 고있는 경우) 어떻게 생각하십니까? 이 장비를 사용하면 실제 메모리 사용량을 알 수 있으며 특히 iPad1의 최적화 솔루션에 대해 생각해 볼 필요가 있습니다. 예, 중요합니다. – Forrest

답변

5

입니다 하지만 이들은 "Learn iPhone and iPad cocos2d Game Development" 도서에 명시된 수치입니다 :

+-----------------------------------------------------------------+ 
| Installed Memory | Available Memory | Memory Warning Threshold | 
+-----------------------------------------------------------------+ 
| 128 MB   | 35-40 MB   | 20-25 MB    | 
| 256 MB   | 120-150 MB  | 80-90 MB    | 
| 512 MB   | 340-370 MB  | 260-300 MB (estimated) | 
+-----------------------------------------------------------------+ 
+0

iOS 6 용이라고 가정합니다. iOS 7 용 데이터를 업데이트 한 사람이 있습니까? 당신의 도움을 주셔서 감사합니다. – Colen

3

... 아이 패드 1은 경우 16MB 주변에서 레벨 1을 트리거하고 아마 32메가바이트 대해에서 레벨 2로 이동합니다. iPad 2/3/mini는 약 50MB ~ 64MB까지는 괜찮은 것 같습니다. iPad 4 결론적으로 결정적인 결과를 얻지는 못했지만, 스펙에서 불만을 토하기 전에 100-128Mb 정도를 예상합니다.

이것은 테스트 중에 악기에서 관찰 한 것입니다. 저는 장치 유형을 감지하기 위해 매크로를 실행하고 석영으로 그려진 항목, 무거운 이미지 등을 비활성화하여 이전 장치를 지원하도록 정상적으로 복귀했습니다 ...

다시 말하지만 이러한 사양은 모호한 것으로 나타났습니다. 테스트에서. 여기

는 아이폰 OS 버전에 따라 변경 될 수 있습니다 주로하기 때문에, 나는 그것을 공식적으로 애플에 의해 문서화 생각하지 않습니다 내가 예를 들어 아이 패드 1을 검출하기 위해 애플 대리자에서 사용하는 클래스 메서드 ...

+ (BOOL)isiPad1 { 
    struct utsname platform; 
    int rc = uname(&platform); 
    if(rc == -1) return NO; 
    return !strcmp("iPad1,1", platform.machine); 
} 
+0

수치는 좋지만 궁극적으로 (경고와 마찬가지로) :: 이것은 구현 세부 사항이며 os 또는 no에 따라 달라질 수 있습니다. 애플 리케이션 –

+0

나는 특히 동의합니다, 나는 정기적으로 성능을 현재의 iOS 출시에 걸쳐 유지하는 것이 좋습니다. – Cocoadelica

+0

우우 좋은데! 좋은 게시물 – Cocoadelica