में रैम की मात्रा की जांच कैसे करें मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो किसी भी सिस्टम पर कितनी रैम उपलब्ध हो, इस पर निर्भर करता है कि बैच की विभिन्न संख्याओं में डेटा आयात करता है। लेकिन मैं आर में उपलब्ध रैम की मात्रा कैसे प्राप्त कर सकता हूं? मैं memory.size()
का उपयोग कर सकता हूं लेकिन यह केवल विंडोज के लिए काम करता है।आर
आर
उत्तर
मंच-निर्भरता पहले टिप्पणी में चर्चा के विषय में चेतावनी को देखते हुए, आप उदाहरण के लिए लिनक्स पर /proc/meminfo
पार्स सकता है:
$ grep MemFree /proc/meminfo
MemFree: 573660 kB
$ awk '/MemFree/ {print $2}' /proc/meminfo
565464
आप system(..., intern=TRUE)
के माध्यम से दूसरा दृष्टिकोण की कोशिश कर सकते हैं, या यहां तक कि एक पाइप कनेक्शन के माध्यम से।
संपादित कुछ 5 + साल बाद: आर में, और सिर्फ निम्नलिखित क्या पिछले पैराग्राफ की ओर संकेत किया:
R> memfree <- as.numeric(system("awk '/MemFree/ {print $2}' /proc/meminfo",
+ intern=TRUE))
R> memfree
[1] 3342480
R>
मैं इस फ़ंक्शन को उपलब्ध स्मृति की वास्तविक मात्रा प्राप्त करने के लिए कॉल करने से पहले 'gc()' का उपयोग करने की अनुशंसा करता हूं। –
आउटपुट इकाई बाइट्स है? विंडोज़ में आर आमतौर पर –
निर्दिष्ट करता है जो कॉपी-पेस्टेबल कोड पसंद करते हैं: 'as.numeric (system (" awk '/ memFree/{print $ 2}'/proc/meminfo ", intern = TRUE))' – MichaelChirico
आप यह करने के लिए एक विधि को लागू करने नहीं जा रहे हैं। आपको मंच का पता लगाने के लिए विभिन्न तरीकों का उपयोग करना होगा। –
* "यदि आपको कीमत मांगनी है, तो आप इसे बर्दाश्त नहीं कर सकते हैं।" * यह गलत दृष्टिकोण दिखता है क्योंकि ऑपरेटिंग सिस्टम द्वारा स्मृति और संसाधन प्रबंधन को संभाला जाता है। जैसा कि रामाउंड ने कहा, आपका दृष्टिकोण मंच-निर्भर बन जाएगा। –
विचार एक कच्चे मान को प्राप्त करना है जो डिफ़ॉल्ट रूप से कुछ हद तक काम करता है। उदाहरण के लिए, 12 जीबी के साथ 1 बैच, 6 जीबी के साथ 2, इत्यादि। प्लेटफार्म 'Sys.info()' के साथ पाया जा सकता है, इसलिए मंच निर्भर दृष्टिकोण सही होना चाहिए? –