2009-06-19 10 views
20

मैं जानना चाहता हूं कि उद्देश्य-सी से आईफोन में प्रोग्रामेटिक रूप से उपलब्ध मेमोरी कैसे प्राप्त करें?प्रोग्राम में आईफोन में उपलब्ध मेमोरी कैसे खोजें?

+0

आपके ऐप, कुल भौतिक मेमोरी, या फाइल सिस्टम स्टोरेज मेमोरी के लिए उपलब्ध है? – Jano

उत्तर

3

आप Mach callhost_info(host, flavor, host_info, host_info_count) का उपयोग कर सकते हैं। आप flavor=HOST_BASIC_INFO, बफर host_info अंक से कॉल करने की तो एक struct host_basic_info से भर जाता है करने के लिए, क्या इस तरह दिखता है: इस संरचना से

struct host_basic_info { 
    integer_t    max_cpus;    /* max number of CPUs possible */ 
    integer_t    avail_cpus;    /* number of CPUs now available */ 
    natural_t    memory_size;   /* size of memory in bytes, capped at 2 GB */ 
    cpu_type_t    cpu_type;    /* cpu type */ 
    cpu_subtype_t   cpu_subtype;   /* cpu subtype */ 
    cpu_threadtype_t  cpu_threadtype;   /* cpu threadtype */ 
    integer_t    physical_cpu;   /* number of physical CPUs now available */ 
    integer_t    physical_cpu_max;  /* max number of physical CPUs possible */ 
    integer_t    logical_cpu;   /* number of logical cpu now available */ 
    integer_t    logical_cpu_max;  /* max number of physical CPUs possible */ 
    uint64_t    max_mem;    /* actual size of physical memory */ 
} 

, आप स्मृति आकार प्राप्त कर सकते हैं।

8

आप निम्न के साथ भौतिक स्मृति प्राप्त कर सकते हैं:

NSLog(@"physical memory: %d", [NSProcessInfo processInfo].physicalMemory); 

उपलब्ध स्मृति कुछ नहीं आप एक कठिन नंबर करने के लिए नीचे कील कर सकते हैं होने जा रहा है, के बाद से ओएस के रूप में करने की जरूरत आप के लिए पृष्ठभूमि ऐप्स को बंद मार डालेगा फ़ाइल कैश को साफ़ करने के साथ अग्रभूमि ऐप को और अधिक मेमोरी दें। मान लें कि आप इसे अपने कैशिंग को अनुकूलित करने के लिए कर रहे हैं, आप भौतिक स्मृति के आधार पर अपना कैश आकार बना सकते हैं और अनुमान लगा सकते हैं कि आपको कितना उपयोग करना चाहिए। उदाहरण के लिए, पुराने 128 एम आईफोन 3 जी पर, आपका पूरा ऐप केवल मारे जाने से पहले 10-15 मेगाहर्ट्ज रैम प्राप्त करेगा, जहां एक नया नया 1024 एमईजी आईफोन 5 आपको मारने का फैसला करने से पहले सैकड़ों मेगाबाइट रैम की अनुमति देगा । http://en.wikipedia.org/wiki/List_of_iOS_devices

+1

मुझे लगता है कि यह होना चाहिए, एनएसएलओजी (@ "भौतिक मेमोरी:% llu", [एनएसपीआरएसीएन्फो प्रोसेसइन्फो] .physicalMemory); – Femina

संबंधित मुद्दे