2012-07-02 10 views
16

स्कैला में, यह वाइल्डकार्ड आयात का उपयोग करने के लिए प्रभावशीलता और वृद्धिशील कंपाइलर्स (एसबीटी, ग्रहण, इंटेलिजे में एसबीटी) की गति के दृष्टिकोण से खराब है? क्या यह वृद्धिशील मामलों के प्रतिकूल तरीके से प्रभावित करता है कि परिवर्तन के मामले में क्या पुन: संकलित करना है? बजायवृद्धिशील संकलन के संबंध में वाइल्डकार्ड आयात स्कैला में खराब है?

import pack._ 

:

उदाहरण के लिए, यदि एक नया वर्ग X के लिए, मैं सिर्फ, पैकेज pack से कक्षाएं A और B (और नहीं C) आयात करने की आवश्यकता होगी मैं एक दंड इस लेखन के लिए मिलता है इस का?

import pack.{ A, B } 

A और B मान लिया जाये कि X जब C परिवर्तन वाइल्डकार्ड आयात के साथ और अधिक विशिष्ट आयात के साथ नहीं फिर कंपाइल किया जाएगा C पर कोई निर्भरता है, या निर्भरता ट्रैकिंग प्रणाली बहुत चालाक महसूस करने के लिए C है कि हो सकता है वाइल्डकार्ड आयात के बावजूद X द्वारा उपयोग नहीं किया जाता है?

उत्तर

8

एक छोटा प्रभाव है, लेकिन आप शायद इसे नोटिस नहीं करेंगे। प्रभाव यह है कि जब "फू" प्रतीक का संदर्भ होता है तो संकलक को "फू" को पूरी तरह से योग्य नाम में हल करना होगा। "फू" के लिए यह कहां देख सकता है इसका दायरा वाइल्डकार्ड आयात से प्रभावित होता है। लेकिन यह सब स्मृति में किया गया है और आप निश्चित रूप से संकल्प गति में ऐसे छोटे अंतरों को नहीं देख पाएंगे जब तक कि आपके पास एक पैकेज में हजारों कक्षाओं की तरह कुछ पागल न हो।

इसके अलावा, कोई प्रभाव नहीं। यदि आप पैक._ और पैक में कुछ मनमानी वर्ग आयात करते हैं ._ कि आप परिवर्तनों पर निर्भर नहीं हैं तो आपकी फ़ाइल को फिर से सम्मिलित नहीं किया जाना चाहिए।

+1

यह ** ** को फिर से सम्मिलित नहीं किया जाएगा, लेकिन क्या इसे वास्तव में पुन: संकलित नहीं किया जाएगा? उदाहरण के लिए, एसबीटी का वर्तमान संस्करण? अक्सर नहीं, मुझे लगता है कि बहुत सारी चीजें फिर से बनाई जा रही हैं। –

+0

नहीं। स्कैला निर्भरता विश्लेषण जटिल बनाता है, लेकिन वाइल्डकार्ड आयात की वजह से नहीं। –

+0

ठीक है, इसलिए पुनर्गठन आयात के माध्यम से संकलन समय को कम करने की उम्मीद कहीं भी नहीं होगी। –

संबंधित मुद्दे