मेरे पास फ़ंक्शन के अंदर एक लूप के अंदर एक फ़ंक्शन है। आंतरिक कार्य स्मृति में डेटा के एक बड़े वेक्टर को प्राप्त करता है और स्टोर करता है (एक वैश्विक चर के रूप में ... मैं "आर" का उपयोग कर रहा हूं जो "एस-प्लस" जैसा है)। लूप डेटा प्राप्त करने के लिए डेटा की एक लंबी सूची के माध्यम से loops। बाहरी कार्य प्रक्रिया शुरू करता है और प्राप्त किए जाने वाले डेटासेट की सूची में गुजरता है।बदतर पाप: दुष्प्रभाव या भारी वस्तुओं को पारित करना?
for (dataset in list_of_datasets) {
for (datachunk in dataset) {
<process datachunk>
<store result? as vector? where?>
}
}
मैं अगले में जाने से पहले प्रत्येक डेटासेट स्टोर करने के लिए आंतरिक समारोह के लिए प्रोग्राम है, इसलिए सभी बाहरी समारोह का काम वैश्विक चर पर दुष्प्रभाव ... एक बड़ा नहीं-नहीं के रूप में होता है। यह वैक्टरों के एक विशाल, मेमोरी-होगिंग वेक्टर को इकट्ठा करने और वापस करने से बेहतर या बदतर है? क्या कोई बेहतर तीसरा दृष्टिकोण है?
क्या उत्तर बदल जाएगा यदि मैं स्मृति में बजाए डेटाबेस में डेटा वैक्टर संग्रहीत कर रहा था? आदर्श रूप में, मैं समाप्ति से पहले संसाधित सभी सूचनाओं को खोए बिना फ़ंक्शन को समाप्त करने में सक्षम होना चाहता हूं (या नेटवर्क टाइमआउट के कारण यह विफल हो गया है)।
मैं इस पोस्ट को संपादित करने की सलाह देते हैं तो यह आसान है तुम क्या करने –
हाँ कृपया स्यूडोकोड जोड़ने की कोशिश कर रहे हैं क्या देखने के लिए कुछ संक्षिप्त स्यूडोकोड शामिल करने के लिए , यह जानना असंभव है कि आपका क्या मतलब है। जब आप कहते हैं "प्रक्रिया ... और परिणाम संग्रहित करें", तो क्या आपका मतलब है "सटीक उसी स्ट्रिंग को स्टोर करें", या वेक्टर (इनट्स, संदर्भ संदर्भ), या क्या? क्या आप इसे कुछ विशाल डेटाफ्रेम/सरणी/मैट्रिक्स में रिकॉर्ड के रूप में संग्रहीत कर रहे हैं? हमें पंक्तियों, स्तंभों, फ़ाइल, खंड और वेक्टर आकारों और आपकी कार्यशील स्मृति की संख्या का कुछ विचार दें? – smci