क्या मैं मेमोरी स्ट्रीम से लाइब्रेरी लोड कर सकता हूं? उदाहरण के लिए मेरी लाइब्रेरी एक फ़ाइल एन्कोड किया गया है। मैं कुछ शर्तों की जांच करता हूं और फ़ाइल को मेमोरी स्ट्रीम में डिक्रिप्ट करता हूं। अब मुझे उस धारा से डिक्रिप्टेड लाइब्रेरी को अपने एप्लिकेशन में लोड करने और उसके कार्यों आदि का उपयोग करने की आवश्यकता है।क्या मैं मेमोरी स्ट्रीम से लाइब्रेरी लोड कर सकता हूं?
उत्तर
विंडोज़ में, एक डीएलएल केवल फाइल से लोड किया जा सकता है - जैसे लिंक सुझाए गए हैं, आप रैमडिस्क बना सकते हैं और इंस्टॉल कर सकते हैं एक ड्राइव के रूप में, लेकिन फाइल सिस्टम में मौजूद फ़ाइल के माध्यम से लोड होने की आवश्यकता वाले डीएलएल के आसपास कोई रास्ता नहीं है। इसका कारण यह है कि डीएलएल "मांग लोड" है, यह प्रणाली पूरी फाइल को स्मृति में एक बार में लोड नहीं करती है, यह वास्तव में उपयोग किए जा रहे हिस्सों को लोड करती है, एक समय में 4 केबी (आमतौर पर)। यह स्वैप क्षेत्र में भी नहीं बदला जाता है, अगर सिस्टम स्मृति से कम चल रहा है तो इसे डीएलएल से हटा दिया जाता है और फिर से लोड किया जाता है।
लिनक्स एक बहुत ही समान तरीके से काम करता है (मुझे पता है कि यह डिफ़ॉल्ट रूप से उसी तरह की मांग-लोडिंग का उपयोग करता है, लेकिन यह सुनिश्चित नहीं है कि इसके आसपास कोई रास्ता है या नहीं), इसलिए मुझे विश्वास नहीं है कि वहां कोई अन्य तरीका है या तो, लेकिन मैंने गहराई से इसे नहीं देखा है।
बेशक, यदि आप चाहते हैं कि कोड का एक टुकड़ा है जिसे आप अपने आवेदन में उपयोग कर सकते हैं, और आप इसे अपनी एक्सेक्टेबल फ़ाइल में एन्क्रिप्टेड/संपीड़ित/जो कुछ भी कर सकते हैं, उसे स्टोर करना चाहते हैं, तो आप कुछ निष्पादन योग्य मेमोरी आवंटित कर सकते हैं (विंडोज़ में, आप निष्पादन योग्य स्मृति आवंटित करने के लिए VirtualAlloc
का उपयोग कर सकते हैं)। हालांकि, आपको यह सुनिश्चित करने की ज़रूरत है कि यदि आप ऐसा करते हैं तो आप अपने कोड में किसी भी पूर्ण मेमोरी पते को स्थानांतरित करते हैं, इसलिए आपको अपने निष्पादन योग्य में स्थानान्तरण जानकारी संग्रहीत करने की आवश्यकता होगी।
स्पष्ट रूप से, आसान समाधान फाइल सिस्टम में फ़ाइल में अपनी सामग्री को अनपैक करना है, और वहां से लोड करना है।
रैमडिस्क की तुलना में एक तर्कसंगत बेहतर समाधान के लिए https://github.com/fancycode/MemoryModule देखें (यदि कोई "अच्छा" या "बेहतर" समाधान है, तो मुझे नहीं लगता कि शुरुआत से प्रयास करना एक अच्छा विचार है)। – Damon
@ डैमन: मैं जो तीसरा अनुच्छेद में वर्णन करता हूं, वह मैं कर रहा हूं (मुझे विस्तार से सभी कोडों के माध्यम से नहीं मिला)। –
@ मैट्स पीटरसन: हाँ, यह वही है जो यह करता है। यह एक कामकाजी कार्यान्वयन है (मैंने इसे कुछ साल पहले कोशिश की थी) और ओपी चाहता है कि "रैमडिस्क" दृष्टिकोण से थोड़ा बेहतर है (क्योंकि आप किसी भी तरह से रैमडिस्क से गैर-एन्क्रिप्टेड फ़ाइल पढ़ सकते हैं)। हालांकि, मुझे अभी भी उस सामान के साथ छेड़छाड़ करने का अच्छा विचार नहीं माना जाता है, क्योंकि यह गंभीर रूप से वीएम प्रबंधन में हस्तक्षेप करता है और यह कुछ हद तक साझा लाइब्रेरी की अवधारणा के विपरीत भी है। डीएलएल फ़ाइल आधारित होने का मुद्दा यह है कि आप एक ही पेज को कई प्रक्रियाओं में मैप कर सकते हैं, उन्हें फेंक सकते हैं, और मांग पर पुनः लोड कर सकते हैं। वास्तव में – Damon
- 1. क्लाउड स्टोरेज को लिखते समय जीएई मेमोरी लीक, क्या मैं इसके बजाय स्ट्रीम कर सकता हूं?
- 2. मैं मेमोरी स्ट्रीम
- 3. रूबी में मेमोरी से HTTP स्ट्रीम स्ट्रीम डेटा कैसे कर सकता हूं?
- 4. मैं स्ट्रीम रीडर या स्ट्रीम लेखक से स्ट्रीम कैसे अलग कर सकता हूं?
- 5. मेमोरी स्ट्रीम से स्ट्रिंग
- 6. मेमोरी स्ट्रीम
- 7. रेल डिज़ाइन संदेह: क्या मैं पूरे शब्दकोश/तालिका को मेमोरी में लोड कर सकता/सकती हूं?
- 8. क्या कोई ऐप। कॉनफिग स्ट्रिंग या मेमोरी स्ट्रीम से लोड किया जा सकता है?
- 9. क्या मैं साझा आयातित लाइब्रेरी इंस्टॉल कर सकता हूं?
- 10. क्या मैं नोडजेस का उपयोग कर क्लाइंट से क्लाइंट तक माइक्रोफ़ोन ऑडियो स्ट्रीम कर सकता हूं?
- 11. मैं अस्थायी रूप से फ़ॉन्ट कैसे लोड कर सकता हूं?
- 12. मैं डेटाबेस से जावा क्लास कैसे लोड कर सकता हूं?
- 13. मेमोरी स्ट्रीम
- 14. मैं आउटपुटस्ट्रीम को कैसे कार्यान्वित कर सकता हूं जिसे मैं रिवाइंड कर सकता हूं?
- 15. मैं कॉफीस्क्रिप्ट में जावास्क्रिप्ट लाइब्रेरी कैसे आयात कर सकता हूं?
- 16. मैं पहले लोड करने से पहले क्या रख सकता हूं?
- 17. क्या मैं कक्षा को अनदेखा कर सकता हूं लेकिन बाहरी रूप से सील कर सकता हूं?
- 18. क्या मैं फ़्लैश स्क्रैप कर सकता हूं?
- 19. क्या मैं एक क्लाइंट मशीन से भारी http लोड अनुकरण कर सकता हूं
- 20. जार से लोड लाइब्रेरी
- 21. क्या मैं ग्राहक को ब्राउज़र आधारित प्लेयर में Spotify से सामग्री स्ट्रीम कर सकता हूं?
- 22. क्या मैं अपने आईफोन या आईपैड से एक सर्वर पर एक वीडियो स्ट्रीम कर सकता हूं?
- 23. क्या मैं AJAX के माध्यम से किसी बाहरी पृष्ठ से डेटा लोड कर सकता हूं?
- 24. मैं node.js में मेमोरी डेटा के अर्थ को कैसे डीकोड कर सकता हूं और मेमोरी लीक डीबग कर सकता हूं?
- 25. मैं बूस्ट लाइब्रेरी नामकरण को कैसे डीकोड कर सकता हूं?
- 26. मैं ROME आरएसएस लाइब्रेरी जार कहां डाउनलोड कर सकता हूं?
- 27. सी ++ स्ट्रीम मेमोरी
- 28. मैं codebird.js ट्विटर लाइब्रेरी का उपयोग कैसे कर सकता हूं?
- 29. कैश को प्रदूषित किए बिना मैं स्मृति से मूल्य कैसे लोड कर सकता हूं?
- 30. क्या मैं स्थानीय रूप से "स्क्रैपरविकी" लाइब्रेरी इंस्टॉल कर सकता हूं?
इसे ओएसएक्स के लिए मिला: http://stackoverflow.com/questions/11821955/load- गतिशील- पुस्तकालय-from- स्मृति और यह विंडोज़ के लिए: http://stackoverflow.com/questions/638277/loading-dll- एक-स्थान-इन-मेमोरी – koopajah
मुझे विंडोज और लिनक्स के लिए समाधान की आवश्यकता है। –