मैक ओएस एक्स पर, मैं देख सकता हूं कि गतिविधि मॉनीटर में कितनी मेमोरी मुक्त है। मैं प्रोग्रामेटिक तरीके से यह कैसे कर सकता हूं?मैं गतिविधि मॉनिटर की तरह मैक पर प्रोग्राम सिस्टम से मुक्त सिस्टम मेमोरी कैसे देख सकता हूं?
उत्तर
ऐसा करना चाहिए। संरचनाओं में खेतों के सटीक अर्थ के लिए Google आस-पास, लेकिन यह इस कोड से बहुत ही आत्म-व्याख्यात्मक कार्य होना चाहिए।
#import <sys/sysctl.h>
#import <mach/host_info.h>
#import <mach/mach_host.h>
#import <mach/task_info.h>
#import <mach/task.h>
int mib[6];
mib[0] = CTL_HW;
mib[1] = HW_PAGESIZE;
int pagesize;
size_t length;
length = sizeof (pagesize);
if (sysctl (mib, 2, &pagesize, &length, NULL, 0) < 0)
{
fprintf (stderr, "getting page size");
}
mach_msg_type_number_t count = HOST_VM_INFO_COUNT;
vm_statistics_data_t vmstat;
if (host_statistics (mach_host_self(), HOST_VM_INFO, (host_info_t) &vmstat, &count) != KERN_SUCCESS)
{
fprintf (stderr, "Failed to get VM statistics.");
}
double total = vmstat.wire_count + vmstat.active_count + vmstat.inactive_count + vmstat.free_count;
double wired = vmstat.wire_count/total;
double active = vmstat.active_count/total;
double inactive = vmstat.inactive_count/total;
double free = vmstat.free_count/total;
task_basic_info_64_data_t info;
unsigned size = sizeof (info);
task_info (mach_task_self(), TASK_BASIC_INFO_64, (task_info_t) &info, &size);
double unit = 1024 * 1024;
memLabel.text = [NSString stringWithFormat: @"% 3.1f MB\n% 3.1f MB\n% 3.1f MB", vmstat.free_count * pagesize/unit, (vmstat.free_count + vmstat.inactive_count) * pagesize/unit, info.resident_size/unit];
सामान्य आदेशों करने के लिए कि यूनिक्स पर
- df हैं -h हार्ड ड्राइव उपयोग
- मुक्त रैम के लिए और स्वैप उपयोग
फिर आप होगा के लिए दी गई जानकारी में से एक निकालने के लिए उनमें से एक या कई का उपयोग करें: एएके, sed, grep, head, cut, ...
नोट: यदि आप "प्रोग्रामेटिक रूप से" मेमोरी की जांच करने की योजना नहीं बनाते हैं, तो मैं आपको सलाह देता हूं कि शीर्ष का उपयोग करें ताकि यह पता चल सके कि कौन सी प्रक्रियाएं आपके सीपीयू और रैम का उपयोग कर रही हैं। जीनोम सिस्टम मॉनीटर इसके जीयूआई समकक्षों में से एक है।
आपके उत्तर के लिए धन्यवाद। मुझे उपयोग करने के लिए "शीर्ष" बहुत आसान लगता है। लेकिन मैं प्रोग्राम को "शीर्ष" कमांड से परिणाम कैसे प्राप्त कर सकता हूं? मैं खोल से संबंधित सामान के लिए बहुत नया हूँ। – backspacer
वास्तव में, यह केवल आधा सच है।
मुफ्त मानक यूनिक्स नहीं बल्कि एक लिनक्स-केवल कमांड है। आपको न तो बीएसडी पर मिलेगा, न ही ओएस एक्स पर।
उस मामले के लिए, स्मृति जानकारी प्राप्त करने का एक बेहतर तरीका sysctl के माध्यम से है।
आईई। रन sysctl -a | grep -Ei "(hw|vm)\..*mem"
और आपको यह विचार मिल जाएगा।
इस प्रोग्रामेटिक रूप से सी में उपयोग करने के लिए, मैन sysctlbyname देखें।
इसके अलावा, मैं, हालांकि नहीं दिख रहा है कि कैसे सूक्ति सिस्टम मॉनिटर OS X पर मदद करता है
df एक अच्छा संकेत है।
यदि आप केवल उन डेटा को इकट्ठा करने और शीर्ष पर चयन करने के लिए खोल का उपयोग करने की योजना बना रहे हैं, तो मैन शीर्ष पढ़ें। आप केवल एक नमूना प्राप्त करने के लिए -l 1 के साथ शीर्ष पर आ सकते हैं और 20 प्रक्रियाओं के साथ प्रक्रिया प्रक्रिया को सीमित कर सकते हैं। 2 ध्यान रखें कि आपको केवल नमूना का उपयोग करके प्रोसेस के लिए CPU मान नहीं मिलेगा, कारण है मैन पेज में उल्लिखित।
top -l1 -n 20 | grep -Ei "mem|vm"
आशा है कि मदद करता है:
एक साधारण उदाहरण कुछ (केवल पूर्ण लाइनों) शीर्ष से बाहर स्मृति के बारे में जानकारी प्राप्त करने के लिए।
'vm_stat' शायद' sysctl' से बेहतर विकल्प है। –
- 1. मैं कैसे देख सकता हूं कि मेरा रूबी प्रोग्राम किस ऑपरेटिंग सिस्टम पर चल रहा है?
- 2. मैं अपने मैकोज़ सिस्टम पर आरपीएम कैसे बना सकता हूं?
- 3. शून्य सिस्टम। थ्रेडिंग। मॉनिटर। ILMerge
- 4. मैं पायथन में सिस्टम जानकारी कैसे वापस कर सकता हूं?
- 5. प्रोग्राम मेमोरी (मैक) की सामग्री
- 6. मैं कमांड लाइन से जावा प्रोग्राम के लिए मेमोरी उपयोग, थ्रेड डंप कैसे देख सकता हूं?
- 7. मॉनिटर प्रक्रिया सिस्टम में शुरू होती है
- 8. सिस्टम की कुल मेमोरी खपत
- 9. कौन से ऑपरेटिंग सिस्टम प्रोग्राम से बाहर निकलने पर स्मृति मुक्त नहीं करेंगे?
- 10. मैक सिस्टम प्राथमिकता
- 11. मेमोरी FUSE फाइल सिस्टम
- 12. मैं जावा के माध्यम से सिस्टम/हार्डवेयर जानकारी कैसे प्राप्त कर सकता हूं?
- 13. मैं सिस्टम को कैसे प्राप्त कर सकता हूं। Windows.Controls.Primitive.PopupRoot?
- 14. मॉनिटर नेटवर्क यातायात मैक
- 15. जावा-एक्सएमएक्स, सिस्टम पर अधिकतम मेमोरी
- 16. कोडइग्निटर में टेम्पलेट सिस्टम वर्डप्रेस की तरह?
- 17. पर्ल में, मैं ऑपरेटिंग सिस्टम में मेमोरी कैसे जारी कर सकता हूं?
- 18. मैक पर सिस्टम वरीयताओं का उपयोग करके प्रोग्राम प्रोग्रामिक रूप से शेड्यूल कैसे करें?
- 19. कैसे एक मैक सिस्टम की पहचान के लिए विशिष्ट
- 20. मैक ओएस एक्स गतिविधि मॉनिटर कैसे कार्यान्वित किया जाता है? क्या मैं एक ही एपीआई का उपयोग कर सकता हूं?
- 21. मैं सिस्टम ड्राइव अक्षर कैसे प्राप्त कर सकता हूं?
- 22. मैं कहां से सीख सकता हूं कि सी ++ प्रोग्राम ऑपरेटिंग सिस्टम (लिनक्स)
- 23. मैं सिस्टम डिवाइस को कैसे अक्षम कर सकता हूं?
- 24. मेमोरी फाइल सिस्टम में सरल
- 25. मैं प्रोग्राम को एक प्रोग्राम को कैसे हटा सकता हूं?
- 26. मैं एक सिस्टम को कैसे हटा सकता हूं। Linq.Expression?
- 27. क्या मैं सिस्टम को रोक सकता हूं। थ्रेडिंग। टिमर
- 28. क्या मैं क्यूटी-निर्माता में प्रोग्राम आउटपुट देख सकता हूं?
- 29. मैं सी में मेमोरी कैसे मुक्त करूं?
- 30. मैक ऐप पर मानक डाउनलोड सिस्टम का उपयोग करके मैं वेबव्यू से डाउनलोड कैसे कर सकता हूं?
यह काम करता है! इस शानदार कोड के साथ मेरी मदद करने के लिए धन्यवाद! – backspacer
क्या मैं सही में sysctlbyname का उपयोग कर रहा हूं और आपको #include # शामिल करें –
markhunte
मैंने उदार उत्तर के लिए उत्तर –