簡體   English   中英

所有iPad版本的內存警告閾值

[英]Memory warning threshold value for all iPad version

適用於iOS應用的內存警告級別1和級別2。 問題是所有iPad設備(從iPad 1到iPad 4,mini),發出警告的響應閾值是多少。 例如,對於iPad1,那是100 MB嗎?

謝謝


我還習慣打印出收到內存警告時使用的內存。

#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));
    }
}

我不認為它是Apple正式記錄的,主要是因為它可能會在iOS版本之間發生變化,但這些是“學習iPhone和iPad cocos2d游戲開發”一書中所述的數字:

+-----------------------------------------------------------------+  
| 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)  |
+-----------------------------------------------------------------+

從練習和記憶...... iPad 1將在16Mb左右觸發1級,可能在32mb左右達到2級。 iPad 2/3 / mini似乎可以達到約50Mb到64Mb。 iPad 4我沒有真正得出確鑿的結果,但是在事情開始抱怨之前,我預計會有大約100-128Mb的規格。

這是我在儀器中至少在測試過程中觀察到的。 我已經開始運行一個宏來檢測設備類型,並通過禁用石英繪制的項目,沉重的圖像等優雅地回退以支持舊設備...

再一次,這些不是任何規格的硬數據,只是我的測試結果。

這是我在app委托中用來檢測iPad 1的類方法,例如......

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM