मैं इलीक्सिर का उपयोग कर समस्या को हल करने पर विचार कर रहा हूं, मुख्य रूप से बड़ी संख्या में प्रक्रियाओं को सस्ती रूप से बढ़ाने की क्षमता के कारण।क्या एलिक्सीर/एरलांग अपनी याददाश्त सहित एक प्रक्रिया की प्रतिलिपि बना सकता है?
मेरे परिदृश्य में, मैं कई "मूल" प्रक्रियाएं बनाना चाहता हूं, जो स्मृति में विशिष्ट, अपरिवर्तनीय डेटा लोड करते हैं, फिर आवश्यकतानुसार उन प्रक्रियाओं की प्रतियां बनाते हैं। प्रतियां सभी समान डेटा डेटा का उपयोग करेंगी, लेकिन इसके साथ-साथ केवल पढ़ने के लिए कार्य करें; उदाहरण के लिए, कल्पना करें कि एक "मूल" में स्मृति में "युद्ध और शांति" का पाठ है, और उस मूल की प्रत्येक प्रति पाठ पर एक अलग तरह का विश्लेषण करती है।
मेरे सवालों का:
- यह एक मौजूदा प्रक्रिया, स्मृति सामग्री और सभी, अमृत/Erlang वीएम में कॉपी करने के लिए संभव है?
- यदि हां, तो क्या प्रत्येक प्रति मूल के रूप में उतनी मेमोरी का उपभोग करती है, या क्या वे स्मृति साझा कर सकते हैं, क्योंकि यूनिक्स प्रक्रियाएं "लिखने की प्रतिलिपि" रणनीति के साथ होती हैं? (और इस मामले में, उसके बाद कोई राईट होगा।)
प्रक्रियाएं साझा नहीं करती हैं, या बल्कि केवल सीमित सीमित प्रकार के डेटा हैं। बड़ी बाइनरी साझा की जाती हैं। – rvirding
मुझे लगता है कि मैंने गलत सवाल पूछा होगा। वापस देखकर, मैं वास्तव में पूछना चाहता था "क्या मैं कुछ पठनीय डेटा लोड या निर्माण कर सकता हूं, कई प्रक्रियाओं को बढ़ा सकता हूं, और क्या वे सभी इसका उपयोग कर सकते हैं?" इसका जवाब है हाँ। उदाहरण के लिए, मैक्रो का उपयोग करके संकलन के दौरान डेटा को एलिक्सीर मॉड्यूल एट्रिब्यूट या फ़ंक्शन बॉडी में संग्रहीत किया जा सकता है, और स्पॉन्ड प्रक्रियाएं फ़ंक्शन को कॉल कर सकती हैं या रनटाइम पर विशेषता तक पहुंच सकती हैं। –