आपका टोंटी:
#include <fstream>
#include <vector>
// ...
// Open the stream
std::ifstream is("input.dat");
// Determine the file length
is.seekg(0, std:ios_base::end);
std::size_t size=is.tellg();
is.seekg(0, std::ios_base::beg);
// Create a vector to store the data
std::vector<float> v(size/sizeof(float));
// Load the data
is.read((char*) &v[0], size);
// Close the file
is.close();
साझा स्मृति के साथ
आई/ओ में है आप प्रोग्राम को कम से कम I/O कॉल में स्मृति में जितना अधिक डेटा पढ़ना चाहते हैं। उदाहरण के लिए एक fread
के साथ 256 नंबर पढ़ना एक नंबर के 256 fread
से तेज़ है।
यदि आप कर सकते हैं, तो लक्ष्य प्लेटफ़ॉर्म के आंतरिक फ़्लोटिंग पॉइंट प्रस्तुति, या कम से कम अपने प्रोग्राम के प्रतिनिधित्व से मेल खाने के लिए डेटा फ़ाइल स्वरूपित करें। यह आंतरिक प्रतिनिधित्व के लिए पाठपरक प्रतिनिधित्व का अनुवाद करने के ऊपरी हिस्से को कम कर देता है।
ओएस बाईपास करें और यदि संभव हो तो फ़ाइल डेटा में पढ़ने के लिए डीएमए नियंत्रक का उपयोग करें। डीएमए चिप प्रोसेसर के कंधों से स्मृति में डेटा पढ़ने का बोझ लेता है।
आपको डेटा फ़ाइल कॉम्पैक्ट करें। डेटा फ़ाइल डिस्क पर क्षेत्रों के एक संगत सेट में होना चाहता है। यह भौतिक platters पर विभिन्न क्षेत्रों की तलाश में बिताए गए समय की मात्रा को कम करेगा।
क्या आप डिस्क संसाधन और प्रोसेसर पर विशेष नियंत्रण मांगते हैं। अन्य सभी महत्वपूर्ण कार्यों को अवरुद्ध करें; अपने कार्यक्रम के निष्पादन की प्राथमिकता बढ़ाएं।
डिस्क ड्राइव कताई रखने के लिए एकाधिक बफर का उपयोग करें। हार्ड ड्राइव को तेज करने और घटाने के लिए प्रतीक्षा करने का समय का एक बड़ा हिस्सा खर्च किया जाता है। आपका प्रोग्राम डेटा को संसाधित कर सकता है जबकि कुछ अन्य डेटा को बफर में संग्रहीत कर रहा है, जिससे ...
मल्टी-थ्रेड। डेटा में पढ़ने के लिए एक थ्रेड बनाएं और बफर खाली नहीं होने पर प्रसंस्करण कार्य को अलर्ट करें।
इन्हें आपको थोड़ी देर व्यस्त रखना चाहिए। अन्य सभी अनुकूलन के परिणामस्वरूप नगण्य प्रदर्शन लाभ होगा। (जैसे हार्ड ड्राइव नियंत्रक को सीधे आपके बफर में स्थानांतरित करने के लिए एक्सेस करना।)
स्रोत
2011-07-19 23:17:36
कृपया सी ++ प्रश्नों को 'सी' के रूप में टैग न करें। यह सिर्फ कष्टप्रद है। –