मैंने बनाया एक अजगर कार्यक्रम आईओ बाध्य है। अधिकांश समय (9 0% से अधिक) एक लूप में बिताया जाता है जो ~ 10,000 बार दोहराता है। इस लूप में, ~ 100 केबी डेटा उत्पन्न होता है और अस्थायी फ़ाइल में लिखा जाता है; फिर इसे एकत्र किए गए डेटा के बारे में किसी अन्य कार्यक्रम और आंकड़ों द्वारा वापस पढ़ा जाता है। दूसरे कार्यक्रम में डेटा पास करने का यही एकमात्र तरीका है।डिस्क से RAMdisk धीमी है?
यह मुख्य बाधा होने के कारण, मैंने सोचा कि अस्थायी फ़ाइल के स्थान को मेरे मुख्य एचडीडी से (~ 40 एमबी) रैमडिस्क (2 जीबी से अधिक रैम के अंदर) में स्थानांतरित करने के लिए आईओ गति में काफी वृद्धि होगी फ़ाइल और इसलिए रन-टाइम को कम करें।
- टेस्ट डेटा: 1: - 72.7s, रैमडिस्क के साथ - रैमडिस्क बिना 78.6s
- टेस्ट डेटा 2: लेकिन, मैं निम्नलिखित परिणाम प्राप्त (प्रत्येक 20 से अधिक रन औसत) रैमडिस्क बिना - 223.0s के साथ, रैमडिस्क - 235.1s
ऐसा लगता है कि रैमडिस्क धीमा है कि मेरा एचडीडी।
इसका कारण क्या हो सकता है?
क्या तेजी से फ़ाइल IO प्राप्त करने के लिए रैमडिस्क का उपयोग करने का कोई अन्य विकल्प है?
बिंदु यह है कि वह अब शुद्ध रैम का उपयोग कर रहा है - यहां तक कि एक डिस्क भी नहीं। सभी उम्मीदों से, उन्हें बाजार पर सबसे तेज़ एसएसडी की तुलना में बेहतर प्रदर्शन करना चाहिए - फिर भी यह एक यांत्रिक ड्राइव से धीमा है। वह पूछ रहा है कि ऐसा क्यों हो सकता है। – Arafangion
हां मैं इसकी सराहना करता हूं। मैं सुझाव दे रहा था कि शायद यह डिस्क नहीं है जिस तरह डिस्क का उपयोग किया जाता है, यह समस्या है। –
अराफांगियन: यह विचार है कि "राम = इलेक्ट्रॉनिक, डिस्क = मैकेनिकल" वास्तव में और सच नहीं है। मेमोरी पेजों को डिस्क पर प्रतिलिपि बनाने के लिए आपका ओएस स्वागत है जब इसे (RAM -> मैकेनिकल) की आवश्यकता होती है, या स्मृति में कैश फाइलें (डिस्क -> इलेक्ट्रॉनिक) चाहती हैं। गंदे पृष्ठ (कोड, डेटा, या फाइलें) केवल एक यांत्रिक प्लेटर पर फंस जाते हैं जब इसे किसी चीज़ के लिए रैम की आवश्यकता होती है। – Ken