कुछ कार्य OCaml में लागू करने के लिए (उदाहरण के लिए, एक सूची से नक्शा) लेकिन आप OCaml पुस्तकालय के नक्शे का उपयोग कर सकते वास्तव में आसान कर रहे हैं: List.mapOCaml मॉड्यूल और प्रदर्शन
हालांकि, हम आश्चर्य कर सकते हैं जो कोड अधिक कुशल होगा। एक अलग संकलन इकाई (एक पुस्तकालय) के मॉड्यूल को कॉल करने से कुछ संभावित अनुकूलन रद्द हो सकते हैं। मैंने समाचार समूह fa.caml में पढ़ा है कि पुस्तकालयों से कार्यों को कॉल करते समय, बंद का उपयोग किया जाता है।
मैं उत्पादन में OCaml कोड है कि जेनेरिक प्रोग्रामिंग करने के लिए मॉड्यूल और functors का उपयोग कर सकते है। ऐतिहासिक कारण के लिए मेरा कोड मोनोलिटिक है: सभी एक फाइल में। अब मेरे पास और समय है, मैं इस तरह के मॉड्यूल के लिए कोड को कोड में अलग करने के लिए तैयार हूं। हालांकि, मुझे डर है कि मैं प्रदर्शन खो सकता हूं, क्योंकि इसे सही करने में मुझे कुछ समय लगा। उदाहरण के लिए, मेरे पास संख्याओं के साथ जटिल वस्तुओं को लपेटने के लिए मॉड्यूल हैं, इसलिए मैं अद्वितीय प्रतिनिधित्व और तेज़ तुलना को लागू करता हूं। मैं जेनरेट मैप्स, सेट्स और उन पर कैश बनाने के साथ उन लिपटे ऑब्जेक्ट्स का उपयोग करता हूं।
प्रश्न हैं:
- Am मैं अगर मैं अलग फ़ाइलों को स्थानांतरित प्रदर्शन ढीला करने के लिए जा रहे हैं?
- क्या ओकैम मॉड्यूल, फ़ैक्टर आदि से भरे मेरे कोड पर कई अनुकूलन कर रहा है?
सी ++ में, यदि आप एक ज में वर्ग विधि को परिभाषित, संकलक अप आदि अंत लघु तरीकों को इनलाइन सकता है, यह है कि अलग फ़ाइलों का उपयोग कर प्राप्त करने के लिए OCaml में संभव है?
मैं ocaml संकलक और संयोजक के आंतरिक भागों के बारे में ज्यादा पता नहीं है, इसलिए मैं अपने सवाल का जवाब नहीं कर सकते हैं। हालांकि, अगर आप अपने कोड को मॉड्यूल में तोड़ने से कोई प्रदर्शन खो देते हैं तो मुझे आश्चर्य होगा। यहां तक कि यदि आपने कुछ मिलीसेकंड खो दिए हैं, तो भी आपके कोड की बढ़ी स्पष्टता इसके लायक होगी। –
सी/सी ++ में जो एक बड़ा अंतर पैदा कर सकता है। मेरे पास लाखों ऑब्जेक्ट्स हैं, जो ज़िलियन बार एक्सेस/तुलना की जाती हैं। प्रति पहुंच के अतिरिक्त संदर्भों का एक सेट बहुत खराब हो सकता है। – hectorpal
हां, लेकिन कंपाइलर को उन संदर्भों को रेखांकित करना चाहिए ताकि आप वास्तव में आवश्यकतानुसार अधिक लुकअप न कर सकें। आप डमी मॉड्यूल के समूह के साथ एक परीक्षण प्रोजेक्ट बनाने का प्रयास कैसे करते हैं और यह मापने की कोशिश करते हैं कि उन्हें तोड़ने और उन्हें उसी फ़ाइल में रखने के बीच कोई अंतर है या नहीं। यह आपके कामकाजी कोडबेस को दोबारा करने से बहुत कम काम हो सकता है। उम्मीद है कि इससे आपको कुछ और आत्मविश्वास मिलेगा कि ओकंपलोप आपके कोड को समझदारी से अनुकूलित करने में सक्षम होगा। –