उत्तर का सबसे बुनियादी? नहीं। OS उपयोगकर्ता के लिए मेमोरी प्रबंधन को संभालता है - एक प्रक्रिया को जितनी मेमोरी की आवश्यकता होती है उतनी देता है, क्योंकि यह अनुरोध करता है और सिस्टम कैसे कार्य करता है इसे संशोधित करने में सक्षम होने के मामले में पूरी तरह से प्रदान नहीं करता है। यह पता लगाने की कोशिश करने में बहुत मदद नहीं करता है कि क्या मेमोरी उपयोग समीकरण का हिस्सा है क्योंकि लिनक्स सर्वर मैक सर्वर से बेहतर प्रदर्शन कर रहे हैं।
वर्चुअल मेमोरी सिस्टम में "हैकबिलिटी" की कमी के कारण आपके सबसे अच्छे विकल्प वर्चुअल मेमोरी के प्रदर्शन का मूल्यांकन करने के लिए यह देखने के लिए है कि क्या यह वास्तव में कारण है कि आपके पास प्रदर्शन के मुद्दे हैं - सबसे बुनियादी इसका उपयोग vm_stat
या उपयोग करना है vm_stat [number of seconds]
कितने पृष्ठ बहिष्कृत कर रहे हैं यह देखने के लिए उपयोग करके जीना । रैम से अप्रयुक्त पृष्ठों को हार्ड ड्राइव में ले जाने से पृष्ठों की हार्ड ड्राइव से आपके रैम पर वापस लाने की तुलना में बहुत कम लागत होती है। OS X शब्दों में एक पृष्ठ 4kb डेटा को संदर्भित करता है।
इसके अतिरिक्त, 32 बिट प्रक्रियाएँ (उदाहरण के लिए। इलस्ट्रेटर) 4GB से अधिक का उपयोग नहीं कर सकती हैं, इसलिए सैद्धांतिक रूप से 2GB मुक्त होना संभव है और यदि आपके पास 6GB स्थापित है, तो स्मृति से बाहर एक प्रक्रिया है।
आपके डेस्कटॉप और सर्वर दोनों पर मैं vm_stat 2
अंतिम कॉलम चलाऊंगा और जांचूंगा - खासकर जब आपको Illustrator कहने के लिए स्विच करते समय कई सेकंड की देरी का अनुभव हो।
यह पता लगाने के लिए कि वास्तव में आप कितनी बड़ी स्वैप हैं या तो गतिविधि मॉनिटर में स्वैप आकार की जांच कर सकते हैं या चला सकते हैं du -shc /var/vm/swap* | tail -n 1
।
का उपयोग करना du -sh /var/vm
एक चेतावनी है: लैपटॉप पर जिसमें हाइबरनेट मोड है (पिछले 4 वर्षों या कुछ भी नया करने के लिए) वहां sleepimage
लगभग एक ही आकार हो सकता है कि आपने कितनी मेमोरी स्थापित की है।
मैक ओएस एक्स मेमोरी शब्दजाल:
वायर्ड : यह कर्नेल कोड और ऐसे को संदर्भित करता है। मेमोरी जिसे कभी भी रैम से बाहर नहीं जाना चाहिए। निवासी स्मृति के रूप में भी जानते हैं।
साझा : मेमोरी जो दो या अधिक प्रक्रियाओं के बीच साझा की जाती है। दोनों प्रक्रियाएँ स्मृति की इस मात्रा को प्रदर्शित करती हैं इसलिए यह थोड़ा भ्रामक हो सकता है कि वास्तव में कितनी स्मृति उपयोग में है।
Real : यह एक अनुप्रयोग के लिए "वास्तविक" मेमोरी का उपयोग है जैसा कि task_info () द्वारा रिपोर्ट किया गया है - वर्तमान प्रक्रिया के भौतिक पृष्ठों की संख्या की एक मोटी गणना। (RSIZE)
निजी : यह स्मृति है कि एक प्रक्रिया पूरी तरह से अपने आप में उपयोग कर रही है जो कि रेजिडेंट मेमोरी में उपयोग की जाती है। (RPRVT)
वर्चुअल : इस प्रक्रिया में पता स्थान की कुल राशि जो किसी भी चीज़ के लिए मैप की जाती है - चाहे वह चर या किसी भी चीज़ के लिए एक बड़ी जगह हो - यह वास्तविक VM उपयोग के लिए समान नहीं है। (VSIZE)
सक्रिय : वर्तमान में सक्रिय के रूप में लेबल की गई मेमोरी और रैम का उपयोग किया जाता है।
निष्क्रिय : "निष्क्रिय स्मृति का अब उपयोग नहीं किया जा रहा है और डिस्क पर कैश्ड हो गया है। यह रैम में रहेगा जब तक कि किसी अन्य को स्थान की आवश्यकता न हो। रैम में इस जानकारी को छोड़ना आपके लाभ के लिए है यदि आप (या आपके कंप्यूटर का ग्राहक) वापस आते हैं। बाद में इसे करने के लिए। " - मैक ओएस एक्स मदद
Free : RAM की मात्रा वास्तव में बिना किसी डेटा के उपलब्ध है।
मुझे जो सबसे अच्छा प्रलेखन पता है (और फॉलोअप अनुसंधान में पाया गया है) उनकी डेवलपर वेबसाइट पर Apple का अपना प्रबंध मेमोरी लेख है।
अन्य सार्थक स्रोत: डार्विन-देव मेलिंग सूची: [ 1 ], [ २ ] और मैकओएसएक्स संकेत पर एक पुराना लेख । इसके अतिरिक्त माइक ऐश ने अपने ब्लॉग पर एक अच्छे व्यक्ति का परिचय प्रस्तुत किया है
यह संभव हो सकता है (मैंने इसे चलाने की कोशिश नहीं की है) वर्चुअल मेमोरी सिस्टम को चलाने के द्वारा अक्षम करना sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
और फिर पुनरारंभ करना ताकि डायनेमिक_पेजर (प्रोग्राम जो वास्तव में वर्चुअल मेमोरी आवंटन करता है) शुरू न हो। हालाँकि, क्योंकि OS मानता है कि इसमें वर्चुअल मेमोरी है जो आप अपने आप को बहुत जल्दी, बहुत जल्दी मुद्दों में भाग सकते हैं। इसे वापस लोड करने के लिए रन sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(यदि एकल उपयोगकर्ता मोड से आवश्यक हो)