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