और क्यों? बूटस्ट्रैप प्रक्रिया है और असली कंपाइलर प्रक्रिया संकलित है, लेकिन कौन सा हिस्सा सबसे अधिक समय लेता है?जीएचसी के मैकपोर्ट पैकेज को संकलित करने में इतना समय क्यों लगता है?
उत्तर
कुछ निर्माण प्रक्रियाओं काफी देर लेते हैं, और समय की राशि अपने CPU की गति और भी बहुत प्रोसेसर कैसे समय पर दृढ़ता से निर्भर करता है का निर्माण करने के लिए समर्पित किया जा सकता है।
यदि आप चिंतित हैं कि यह किसी निश्चित बिंदु पर लटक रहा है, तो install
ध्वज के साथ निर्माण प्रक्रिया से संबंधित अधिक वर्णनात्मक आउटपुट प्राप्त करने के लिए चलाएं। इस प्रकार कमांड कुछ ऐसा होगा:
sudo port -v install [portfile]
साथ ही कैसे बड़े और जटिल परियोजना है, हार्ड ड्राइव की किस प्रकार बॉक्स का उपयोग कर रहा है, आदि को देखने के – NotMe
राइट - मैं जा रहा था काफी सामान्य, लेकिन निश्चित रूप से परियोजना का आकार, फाइलों की संख्या, जो कंपाइलर/निर्माण उपयोगिता का उपयोग किया जा रहा है, निर्भरताओं की संख्या, पढ़ने/लिखने की गति इत्यादि सभी आवश्यक समय की अवधि में योगदान देते हैं। – nearlymonolith
इसमें कुछ समय लग सकता है। जब मैं इसे अपने आईबुक जी 4 पर संकलित करता था, तो इसमें 7 घंटे तक लगते थे। मैकबुक प्रो पर भी बहुत सी रैम और एक तेज प्रोसेसर के साथ, इसमें 2-3 घंटे लग सकते हैं।
बिल्डिंग GHC हमेशा के लिए लेने के लिए कुख्यात है। मैंने स्रोत स्रोत निर्माण के लिए 8 घंटे से अधिक समय लेने के बारे में डरावनी कहानियां सुनाई हैं। जो मैं समझता हूं, वह मुख्य रूप से इस तथ्य के कारण है कि जीएचसी का डिफ़ॉल्ट निर्माण अपने रनटाइम प्रदर्शन को गति देने के लिए अनुकूलन की भारी मात्रा में करने का प्रयास करता है। यहां तक कि आंशिक रूप से प्रीबिल्ट सिस्टम (जो मुझे विश्वास है कि मैकपोर्ट प्रदान करता है) के साथ भी इस प्रक्रिया में सभी लिंकिंग के कारण कुछ समय लग सकता है।
संपादित करें: देखो निम्नलिखित http://hackage.haskell.org/trac/ghc/wiki/Building/Using#HowtomakeGHCbuildquickly
यह सही प्रतिक्रिया है: जीएचसी जो किसी भी सॉफ़्टवेयर को संकलित करने में अधिक समय लेता है। मैं इसे अपने i3 पर 8 घंटे से अधिक समय तक बना रहा हूं। – Mikhail
Gentoo परिप्रेक्ष्य से:
Gentoo में, सब कुछ संकलित किया गया है। जीएचसी के लिए हम क्या करते हैं कि हम देवताओं (स्वयं जैसे अनौपचारिक देवताओं सहित) एक पुराने से जीएचसी का एक नया संस्करण एक बाइनरी बूटस्ट्रैपिंग संस्करण बनाने के लिए संकलित करते हैं, और उसके बाद पैकेज करते हैं और उपयोगकर्ताओं को एक नया संस्करण संकलित करने के लिए इसका उपयोग करते हैं।
स्मृति से, द्विआधारी संकलन में दोगुना समय (अपने लैपटॉप पर एक नया संस्करण संकलित करने के लिए द्विआधारी उपयोग करने के लिए लगभग 45 मिनट लगते) की तुलना में अधिक समय लग सकता है। कुछ मतभेद हैं (दस्तावेज बनाया गया है और इसे प्रत्येक उपयोगकर्ता के निर्माण के बजाए बाइनरी के साथ भेज दिया गया है) लेकिन ऐसा कोई भी नहीं जिसे मैं इतने बड़े समय के अंतर के लिए देख सकता हूं। वास्तविक ebuild दोनों द्विआधारी और के लिए अंत उपयोगकर्ताओं यहां पाया जा सकता का निर्माण करने (सक्षम करने ghcbootstrap झंडा यह एक द्विआधारी बनाता है, सक्रिय करने के द्विआधारी ध्वज का मतलब है कि उपयोगकर्ताओं को नहीं बल्कि खुद को GHC निर्माण से स्थापित करने और पहले से बनाए गए द्विआधारी का उपयोग का मतलब है) का इस्तेमाल किया: http://code.haskell.org/gentoo/gentoo-haskell/dev-lang/ghc/ghc-6.12.3.ebuild
जैसे, मेरा अनुमान है कि यह प्रारंभिक बूटस्ट्रैपिंग प्रक्रिया है कि इतने लंबे समय लेता है, तो macports वास्तव में एक प्रारंभिक बूटस्ट्रैपिंग बाइनरी (विशेष रूप से अगर यह पिछले से इसलिए कर रहा है बनाने जा रहा है है सी-ही जारी करने और संस्करण अप करने के लिए अपनी तरह से bootstrapping आप वास्तव में स्थापित करना चाहते हैं)।
यह एकमात्र प्रतिक्रिया है कि कम से कम प्रश्न का उत्तर देने का प्रयास करता है। –
- 1. एंड्रॉइड एवीडी शुरू करने में इतना लंबा क्यों लगता है?
- 2. जीएचसी इतना बड़ा/बड़ा क्यों है?
- 3. क्यों /^(.+)+Q$/.test("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ") इतना लंबा समय लगता है?
- 4. पर्ल में "\ n" प्रिंट करने में इतना समय क्यों लगता है?
- 5. ob_flush को निष्पादित करने में लंबा समय लगता है
- 6. ग्रहण निर्भरताओं को अद्यतन करने के लिए ग्रहण इतना लंबा क्यों लगता है?
- 7. mysql में कॉलम का नाम बदलने में इतना समय क्यों लगता है?
- 8. mysql "ड्रॉप डेटाबेस" समय लगता है - क्यों?
- 9. आयरनपीथन स्टार्टअप समय इतना धीमा क्यों है?
- 10. LINQ से Entities क्वेरी को संकलित करने में लंबा समय लगता है, एसक्यूएल तेजी से
- 11. विंडोज स्नैपशॉट्स का समय क्यों लगता है?
- 12. ग्लिबैक संकलन करने में कितना समय लगता है?
- 13. स्क्रिप्ट को निष्पादित करने में कितना समय लगता है?
- 14. जेएस: फ़ंक्शन को कॉल करने में कितना समय लगता है?
- 15. मैकपोर्ट
- 16. std :: vector :: push_back की 100,000 से अधिक पंक्तियों को संकलित क्यों करता है एक लंबा समय लगता है?
- 17. मेटरॉर को हेरोोकू पर अपना डेटा लोड करने में इतना समय क्यों लग रहा है?
- 18. टेस्टकंपलेट इतना धीमा क्यों है?
- 19. मैकपोर्ट
- 20. लिंकर अनुकूलन इतना खराब क्यों है?
- 21. टेम्पलेट हास्केल क्यों जीएचसी पैकेज लोड करने का कारण बनता है?
- 22. जीएचसी के प्रत्येक धागे के लिए एक ढेर क्यों है?
- 23. क्या इसे संकलित करते समय प्रोग्राम को संशोधित करने के लिए जीएचसी एपीआई का उपयोग करना संभव है?
- 24. EXC_BAD_ACCESS इतना असहनीय क्यों है?
- 25. हास्केल इतना बड़ा क्यों है?
- 26. योडली कार्यान्वयन करने में कितना समय लगता है?
- 27. लूप निष्पादित करने में कितना समय लगता है?
- 28. एप्लिकेशन को स्टार्टअप के लिए कितना समय लगता है?
- 29. सीआरएएन को आर-पैकेज जमा करने में क्या कदम हैं और प्रत्येक चरण में कितना समय लगता है?
- 30. वालराय इतना धीमा क्यों है?
क्या आप जानते हैं कि आप ओएस एक्स के लिए प्री-बिल्ट कंपाइलर और पुस्तकालयों का सेट डाउनलोड कर सकते हैं? http://hackage.haskell.org/platform/mac.html –
मुझे समझ में आता है कि प्री-बिल्ट वर्जन और मैकपोर्ट्स के बीच इंटरऑप के साथ समस्याएं हैं। – hampurter
ठीक है, मुझे मैकपोर्ट से संबंधित हास्केल से संबंधित कुछ भी नहीं चाहिए। मंच इंस्टॉलर और कैबल पर्याप्त रहे हैं। –