मैं अजगर प्रक्रियाओं के बीच स्मृति साझा करने का एक तरीका जानने का प्रयास कर रहा हूं। असल में ऐसे ऑब्जेक्ट्स मौजूद हैं जो मौजूद हैं कि एकाधिक पायथन प्रक्रियाओं को पढ़ने (केवल पढ़ने) और उपयोग (कोई उत्परिवर्तन) का उपयोग करने में सक्षम होना चाहिए। अभी इसे रेडिस + स्ट्रिंग्स + सीपीकल का उपयोग करके कार्यान्वित किया गया है, लेकिन सीपीकल ने बहुमूल्य CPU समय लिया है, इसलिए मैं इसका उपयोग नहीं करना चाहता हूं। अधिकांश पाइथन साझा किए गए मेमोरी कार्यान्वयन जिन्हें मैंने इंटर्ननेट पर देखा है, उन्हें फाइलों और अचार की आवश्यकता होती है जो मूल रूप से मैं पहले से ही कर रहा हूं और वास्तव में जो मैं टालने की कोशिश कर रहा हूं।पायथन प्रक्रियाओं के बीच साझा स्मृति
मुझे क्या सोच रहा है कि अगर ऐसा लिखने का कोई तरीका होगा ... मूल रूप से एक इन-मेमोरी पायथन ऑब्जेक्ट डेटाबेस/सर्वर और डेटाबेस के साथ इंटरफेस करने के लिए एक संबंधित सी मॉड्यूल?
मूल रूप से सी मॉड्यूल किसी ऑब्जेक्ट को किसी ऑब्जेक्ट को लिखने के लिए सर्वर से पूछता है, सर्वर किसी पते के साथ प्रतिक्रिया देगा, फिर मॉड्यूल ऑब्जेक्ट लिख देगा, और सर्वर को सूचित करेगा कि किसी दिए गए कुंजी वाले ऑब्जेक्ट को लिखा गया था निर्दिष्ट स्थान पर डिस्क पर। फिर जब कोई भी प्रक्रिया किसी ऑब्जेक्ट को किसी ऑब्जेक्ट को पुनर्प्राप्त करना चाहती थी तो वे केवल दी गई कुंजी के लिए स्मृति स्थान के लिए डीबी से पूछेंगे, सर्वर स्थान के साथ प्रतिक्रिया देगा और मॉड्यूल को पता होगा कि स्मृति में उस स्थान को कैसे लोड किया जाए और पाइथन ऑब्जेक्ट को पाइथन प्रक्रिया में वापस स्थानांतरित करें।
क्या यह पूरी तरह से अनुचित या वास्तव में लागू करने के लिए बहुत मुश्किल है? क्या मैं कुछ ऐसा करने का पीछा कर रहा हूं जो असंभव है? किसी भी सुझाव का स्वागत होगा। धन्यवाद इंटरनेट।
वास्तव में आपका सीपीयू समय कितना मूल्यवान है कि यह एक ऐसे समाधान समाधान को डंप करने लायक है जो आपके द्वारा प्रस्तावित किए गए सिंक्रनाइज़ेशन को सिंक्रनाइज़ करने के लिए बहुत कम है? आप जो मांग रहे हैं वह किया जा सकता है लेकिन गधे में * सही * करने के लिए यह एक बड़ा दर्द होगा। – millimoose
सीपीयू समय सबसे कीमती है। मूल रूप से unpickling वस्तुओं 20 एमएस (एक छोटे से के लिए) से 60 एमएस (एक बड़े के लिए) से कहीं भी ले जा सकते हैं। मैं व्यक्तिगत रूप से महसूस करता हूं कि इन दोनों समय बहुत लंबे हैं। संपादित करें: इस अर्थ में बहुत लंबा है कि एक बेहतर तरीका होना चाहिए, ऐसा नहीं है कि मुझे लगता है कि सीपीकल पर्याप्त मेहनत नहीं कर रहा है। – nickneedsaname
साझाकरण मेमोरी करने योग्य होगा, लेकिन ऑब्जेक्ट्स साझा करना गंभीर रूप से कठिन होगा ... एक संबंधित प्रश्न यहां पाया जा सकता है: http://stackoverflow.com/questions/1268252/python-possible-to-share-in-memory-data -बेटवीन-2-अलग-प्रक्रियाओं (एलेक्स मार्टेलि का एक अच्छा लेखन है कि यह कड़ी मेहनत कर रहा है)। – ChristopheD