2010-06-30 6 views
8

और क्यों? बूटस्ट्रैप प्रक्रिया है और असली कंपाइलर प्रक्रिया संकलित है, लेकिन कौन सा हिस्सा सबसे अधिक समय लेता है?जीएचसी के मैकपोर्ट पैकेज को संकलित करने में इतना समय क्यों लगता है?

+4

क्या आप जानते हैं कि आप ओएस एक्स के लिए प्री-बिल्ट कंपाइलर और पुस्तकालयों का सेट डाउनलोड कर सकते हैं? http://hackage.haskell.org/platform/mac.html –

+0

मुझे समझ में आता है कि प्री-बिल्ट वर्जन और मैकपोर्ट्स के बीच इंटरऑप के साथ समस्याएं हैं। – hampurter

+0

ठीक है, मुझे मैकपोर्ट से संबंधित हास्केल से संबंधित कुछ भी नहीं चाहिए। मंच इंस्टॉलर और कैबल पर्याप्त रहे हैं। –

उत्तर

2

कुछ निर्माण प्रक्रियाओं काफी देर लेते हैं, और समय की राशि अपने CPU की गति और भी बहुत प्रोसेसर कैसे समय पर दृढ़ता से निर्भर करता है का निर्माण करने के लिए समर्पित किया जा सकता है।

यदि आप चिंतित हैं कि यह किसी निश्चित बिंदु पर लटक रहा है, तो install ध्वज के साथ निर्माण प्रक्रिया से संबंधित अधिक वर्णनात्मक आउटपुट प्राप्त करने के लिए चलाएं। इस प्रकार कमांड कुछ ऐसा होगा:

sudo port -v install [portfile] 
+1

साथ ही कैसे बड़े और जटिल परियोजना है, हार्ड ड्राइव की किस प्रकार बॉक्स का उपयोग कर रहा है, आदि को देखने के – NotMe

+0

राइट - मैं जा रहा था काफी सामान्य, लेकिन निश्चित रूप से परियोजना का आकार, फाइलों की संख्या, जो कंपाइलर/निर्माण उपयोगिता का उपयोग किया जा रहा है, निर्भरताओं की संख्या, पढ़ने/लिखने की गति इत्यादि सभी आवश्यक समय की अवधि में योगदान देते हैं। – nearlymonolith

3

इसमें कुछ समय लग सकता है। जब मैं इसे अपने आईबुक जी 4 पर संकलित करता था, तो इसमें 7 घंटे तक लगते थे। मैकबुक प्रो पर भी बहुत सी रैम और एक तेज प्रोसेसर के साथ, इसमें 2-3 घंटे लग सकते हैं।

4

बिल्डिंग GHC हमेशा के लिए लेने के लिए कुख्यात है। मैंने स्रोत स्रोत निर्माण के लिए 8 घंटे से अधिक समय लेने के बारे में डरावनी कहानियां सुनाई हैं। जो मैं समझता हूं, वह मुख्य रूप से इस तथ्य के कारण है कि जीएचसी का डिफ़ॉल्ट निर्माण अपने रनटाइम प्रदर्शन को गति देने के लिए अनुकूलन की भारी मात्रा में करने का प्रयास करता है। यहां तक ​​कि आंशिक रूप से प्रीबिल्ट सिस्टम (जो मुझे विश्वास है कि मैकपोर्ट प्रदान करता है) के साथ भी इस प्रक्रिया में सभी लिंकिंग के कारण कुछ समय लग सकता है।

संपादित करें: देखो निम्नलिखित http://hackage.haskell.org/trac/ghc/wiki/Building/Using#HowtomakeGHCbuildquickly

+0

यह सही प्रतिक्रिया है: जीएचसी जो किसी भी सॉफ़्टवेयर को संकलित करने में अधिक समय लेता है। मैं इसे अपने i3 पर 8 घंटे से अधिक समय तक बना रहा हूं। – Mikhail

9

Gentoo परिप्रेक्ष्य से:

Gentoo में, सब कुछ संकलित किया गया है। जीएचसी के लिए हम क्या करते हैं कि हम देवताओं (स्वयं जैसे अनौपचारिक देवताओं सहित) एक पुराने से जीएचसी का एक नया संस्करण एक बाइनरी बूटस्ट्रैपिंग संस्करण बनाने के लिए संकलित करते हैं, और उसके बाद पैकेज करते हैं और उपयोगकर्ताओं को एक नया संस्करण संकलित करने के लिए इसका उपयोग करते हैं।

स्मृति से, द्विआधारी संकलन में दोगुना समय (अपने लैपटॉप पर एक नया संस्करण संकलित करने के लिए द्विआधारी उपयोग करने के लिए लगभग 45 मिनट लगते) की तुलना में अधिक समय लग सकता है। कुछ मतभेद हैं (दस्तावेज बनाया गया है और इसे प्रत्येक उपयोगकर्ता के निर्माण के बजाए बाइनरी के साथ भेज दिया गया है) लेकिन ऐसा कोई भी नहीं जिसे मैं इतने बड़े समय के अंतर के लिए देख सकता हूं। वास्तविक ebuild दोनों द्विआधारी और के लिए अंत उपयोगकर्ताओं यहां पाया जा सकता का निर्माण करने (सक्षम करने ghcbootstrap झंडा यह एक द्विआधारी बनाता है, सक्रिय करने के द्विआधारी ध्वज का मतलब है कि उपयोगकर्ताओं को नहीं बल्कि खुद को GHC निर्माण से स्थापित करने और पहले से बनाए गए द्विआधारी का उपयोग का मतलब है) का इस्तेमाल किया: http://code.haskell.org/gentoo/gentoo-haskell/dev-lang/ghc/ghc-6.12.3.ebuild

जैसे, मेरा अनुमान है कि यह प्रारंभिक बूटस्ट्रैपिंग प्रक्रिया है कि इतने लंबे समय लेता है, तो macports वास्तव में एक प्रारंभिक बूटस्ट्रैपिंग बाइनरी (विशेष रूप से अगर यह पिछले से इसलिए कर रहा है बनाने जा रहा है है सी-ही जारी करने और संस्करण अप करने के लिए अपनी तरह से bootstrapping आप वास्तव में स्थापित करना चाहते हैं)।

+0

यह एकमात्र प्रतिक्रिया है कि कम से कम प्रश्न का उत्तर देने का प्रयास करता है। –

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