में टाइप क्लास पैटर्न का उपयोग करने का प्रदर्शन प्रभाव क्या है, वर्तमान में मैं अपने कोड के प्रदर्शन-प्रासंगिक भाग होने के लिए टाइप क्लास पैटर्न का व्यापक उपयोग कर रहा हूं। मैंने अक्षमता के कम से कम दो संभावित स्रोत बनाए।स्कैला
निहित पैरामीटर संदेश कॉल के साथ पास हो जाते हैं। मुझे नहीं पता कि यह वास्तव में होता है या नहीं। हो सकता है कि स्केलेक केवल अंतर्निहित पैरामीटर डालें जहां उनका उपयोग किया जाता है और उन्हें विधि हस्ताक्षर से हटा दिया जाता है। यह उन मामलों में संभवतः संभव नहीं है जहां आप निहित पैरामीटर मैन्युअल रूप से सम्मिलित करते हैं, क्योंकि उन्हें केवल रनटाइम पर हल किया जा सकता है। अंतर्निहित पैरामीटर पास करने के संबंध में कौन से अनुकूलन लागू होते हैं? प्रकार वर्ग उदाहरण एक
def
(एकval
के विपरीत) द्वारा प्रदान की गईहैं, वस्तु एक "प्रकार में वर्गीकृत विधि" के हर मंगलाचरण पर निर्मित किया जाना है। इस समस्या को JVM द्वारा संबोधित किया जा सकता है, जो वस्तु निर्माण को अनुकूलित कर सकता है। इन वस्तुओं का पुन: उपयोग करके इस मुद्दे को स्केलेक द्वारा भी दबाया जा सकता है। अंतर्निहित पैरामीटर ऑब्जेक्ट्स के निर्माण के संबंध में कौन से अनुकूलन लागू होते हैं?
और निश्चित रूप से जब प्रकार वर्ग पैटर्न लागू करने वहाँ अक्षमता का अतिरिक्त स्रोत हो सकता है। कृपया मुझे उनके बारे में बताओ।
तो एक चल रहा है देख सकते हैं सुझाव जो मैंने आपके उत्तर से पढ़ा है वह 'scalaz.Monoid' को प्रतिस्थापित कर सकता है, जिसका मैं वास्तव में उपयोग कर रहा हूं, spe के साथ अपने संस्करण द्वारा cialization? हालांकि विशेषज्ञता बहुत छोटी लगती है ... यहां तक कि 'न्यूमेरिक' भी ऐसा नहीं लगता है। – ziggystar
मैं विशेषज्ञता टीबी के बारे में अच्छी तरह से स्पष्ट होगा। अगर मैं आपके जूते में था तो मैं * बहुत, निश्चित रूप से * बनना चाहता हूं कि मुझे कोड के प्रदर्शन की हर आखिरी बूंद को निचोड़ने की आवश्यकता थी।क्या आपको यकीन है कि आप करते हैं? अगर चीज को धातु के करीब होना है, तो मैं कहूंगा कि आपको म्यूटेबल संग्रह, अनिवार्य कोड और लूप के दौरान वापस जाना होगा। वास्तव में कोई अन्य उत्तर नहीं है –
यह वास्तव में यथासंभव तेज़ होना नहीं है। लेकिन मैं मुक्केबाजी के प्रदर्शन प्रभाव नहीं लेना चाहता हूं। मैं वर्तमान में आदिम सरणी का उपयोग कर रहा हूं (उन्हें म्यूट किए बिना)। समस्या के बारे में, बड़ी समस्या स्थान पर लागू करने के लिए कोड को बहुत सामान्य रखना संभव है (मैं बीजगणितीय के छल्ले को अबास्ट्रक्शन के रूप में भी उपयोग कर रहा हूं)। वर्तमान में मैं प्रदर्शन के बीच फैसला नहीं करना चाहता (जैसे मुक्केबाजी 10x हिट ले रहा है) और अमूर्तता; यह एक आसान विकल्प नहीं है और मुझे आश्चर्य है कि मैं दोनों को लेने के साथ कितना दूर जा सकता हूं। – ziggystar