मैं एक फ़ाइल को स्मृति में मैप करने की कोशिश कर रहा हूं और फिर रेखा से लाइन को पार्स कर रहा हूं- क्या मुझे इसका उपयोग करना चाहिए?आईट्रीम बनाम स्मृति एक फ़ाइल मैपिंग?
क्या आईट्रीम विंडोज़ पर स्मृति के लिए फ़ाइल मैप करने जैसा ही है? मुझे स्मृति में फ़ाइल मैप करने का पूरा उदाहरण खोजने का प्रयास करने में कठिनाई हुई है।
मैंने लोगों को एमएसडीएन से मेमोरी मैपिंग लेख लिंक किया है, लेकिन अगर कोई छोटी (~ 15 लाइन?) उदाहरण की सिफारिश कर सकता है तो मुझे सबसे ज्यादा स्वागत है।
मुझे गलत चीज़ खोजनी होगी, लेकिन Google पर "C++ मेमोरी मैपिंग उदाहरण" खोजते समय मुझे एक ऐसा उदाहरण नहीं मिला जिसमें इसके माध्यम से पुनरावृत्ति शामिल हो। http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2044.html#ClassSharedMemoryObjectExample
http://msdn.microsoft.com/en-us/library/dd997372.aspx (कोई सी ++ कोड)
http://beej.us/guide/bgipc/output/html/multipage/mmap.html (मेरा मानना है कि यूनिक्स के लिए किया गया था, नहीं खिड़कियां)
"* मैं एक फ़ाइल को स्मृति में मैप करने की कोशिश कर रहा हूं और ** ** ** लाइन * द्वारा लाइन पार्स *। क्या आप हमें बता सकते हैं कि आप फाइल को मेमोरी-मैप क्यों करना चाहते हैं? लाइन-बाय-लाइन का विश्लेषण क्यों नहीं कर रहा है (कहें, कहें, 'ifstream' या' fopen') पर्याप्त है? –
@Rob, पूरी तरह से प्रदर्शन कारणों से। मैं (झूठी?) इंप्रेशन के तहत था कि यह पूरी फाइल को तेजी से मैप कर रहा है? – user997112
@ user997112: यह इस बात पर निर्भर करता है कि आप डेटा के साथ क्या करते हैं। यदि आप इसे एक उचित पार्सर के लिए उपयोग कर रहे हैं जो बैकट्रैकिंग लागू करता है, तो स्मृति मैप की गई फ़ाइलें अनचाहे तेज़ी से होती हैं; लेकिन यदि आप डेटा के माध्यम से आगे बढ़ रहे हैं (जैसे कि कई सरल 'std :: getline' कॉल के साथ), मुझे संदेह है कि कोई ध्यान देने योग्य अंतर होगा। निश्चित रूप से मेमोरी मैप किए गए फ़ाइल का उपयोग करने में कोई _harm_ नहीं है, हालांकि, जब तक कि आप वर्चुअल एड्रेस स्पेस पर कम न हों (शायद जीबी + आकार फ़ाइलों के साथ 32-बिट कोड में केवल एक समस्या)।फ़ाइल को – ildjarn