2010-07-21 16 views
6

के लिए कौन सा हार्डवेयर कारक महत्वपूर्ण है, मुझे अक्सर जावा कोड संकलित करना होगा, विशेष रूप से जीडब्ल्यूटी जैसी चीजें जो पूर्ण होने में आयु लेती हैं। मैं उस ओवरहेड से नहीं बच सकता लेकिन मैं बेहतर हार्डवेयर के साथ इसे कम करना चाहता हूं। कौन सा कारक इस तरह के संकलन को यथासंभव तेज़ बना देगा? (मुझे पता है कि यह थोड़ा सा व्यक्तिपरक है, लेकिन जब संकलन में आता है, तो मुझे यकीन है कि कुछ कारक दूसरों की तुलना में अधिक महत्वपूर्ण हैं)।फास्ट कोड संकलन

उदाहरण के लिए, मुझे लगता है कि 3.6 गीगाहर्ट्ज/कोर पर चलने वाला एक ड्यूल कोर एक क्वाड कोर से तेज हो सकता है जो संकलन के समय 2.8 गीगा/कोर पर चलता है (विशेष रूप से जब जावा कोड/जीडब्ल्यूटी कोड संकलन वर्तमान में एकल होता है पिरोया)।

तो, इस विशिष्ट समस्या के संबंध में हार्डवेयर खरीदने पर मुझे किस तरह का कारक माना जाना चाहिए?

संपादित करें:

मैं यह काफी सामान्य लगता है जब मेरी विशिष्ट स्थिति का उल्लेख किए बिना इन संकलन के बारे में बात। मैं जीडब्ल्यूटी & स्कैला संकलन से निपट रहा हूं, जो धीमा धीमा है, हालांकि संकलन के दौरान मुझे अपनी हार्ड डिस्क पर उच्च भार नहीं दिखता है।

क्या मुझे इसे 2.4 गीगाहर्ट्ज के 4+ कोर या सीपीयू के साथ 3.4 गीगाहर्ट्ज के 2 कोर के सीपीयू के साथ तेज करना चाहिए? क्या दोहरी 2 जीबी डीडीआर 3 रैम तेज हो जाएगी या दोहरी 4 जीबी डीडीआर 2 इसे तेज कर देगा? क्या RAID 0 एक बड़ा अंतर करेगा?

+0

संकलक पर निर्भर हो सकता है। एक स्मार्ट कंपाइलर आपके स्रोत को स्वतंत्र समूहों में विभाजित करने और समानांतर में संकलित करने में सक्षम हो सकता है। –

उत्तर

1

मेमोरी निश्चित रूप से एक कारक होने जा रहा है। यदि संकलक भौतिक स्मृति में आवश्यक स्थिति नहीं रख सकता है तो आप पृष्ठ स्वैप में एक बड़ी हिट करने जा रहे हैं।

2

रैम और इस मामले में तेज़ हार्ड डिस्क। नवीनतम सी ++ कंपाइलर्स सीपीयू के मामले में भी एक कारक है।

+0

हम्म, मेरे अवलोकन के भीतर, 4 जीबी रैम के साथ मेरा एएमडी एथलॉन एक्स 2 1.7 2 गीगा जीडब्ल्यूटी संकलन करते समय 1 जीबी रैम के साथ कोर 2 डुअल 2.4 गीगाहर्ट्ज से धीमा है। और हम एक ही तरह के एचडीडी (Hatachi SATA 5400 आरपीएम) और ओएस (उबंटू 10.04) –

+0

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

0

मेमोरी और हार्ड ड्राइव की गति सबसे महत्वपूर्ण चीजें हैं। यदि आप अक्सर संकलित करते हैं, तो अधिक स्मृति का अर्थ फ़ाइल से बजाए कैश से अधिक फ़ाइलों तक पहुंचा जा सकता है। लेखन समय आम तौर पर एचडी निर्भर होता है, और जावा संकलन आमतौर पर कई अलग-अलग फाइलों को लिखने का मतलब है।

आपके द्वारा उपयोग की जाने वाली फ़ाइल सिस्टम का यहां बहुत बड़ा प्रभाव हो सकता है, इसलिए आपकी डिस्क को डिफ्रैगमेंट कर सकते हैं।

यदि स्मृति और एचडी बाधाएं नहीं हैं, तो आपके सीपीयू में कोर की संख्या महत्वपूर्ण हो सकती है, अगर आपका पर्यावरण हमें बनाने के लिए पर्याप्त स्मार्ट है (IMHO अधिकांश वातावरण यहां खराब काम करते हैं)।

साथ ही, टीपोट्स और उबलते पानी के साथ, एक कंपाइलर जिसे देखा जा रहा है संकलन करने में अधिक समय लगता है।

+0

है तो सीपीयू हर्ट्ज, और सीपीयू कैश मेमोरी रैम और हार्ड ड्राइव के रूप में उतना महत्वपूर्ण नहीं है? हम्म ... –

+0

आईएमएचओ संकलन में बाधा आमतौर पर डिस्क है, सीपीयू नहीं। बड़ी संख्या में फाइलें पढ़ने और लिखने के लिए (और निर्भरता की गणना भी) आमतौर पर संकलन की लागत से काफी धीमी होती है। आप बार-बार जीडब्ल्यूटी का पुनर्मूल्यांकन क्यों कर रहे हैं, बीटीडब्ल्यू? – Uri

+0

मुझे नहीं पता। मेरे पास gwt-maven-plugin द्वारा संकलित GWT है। जब भी मैं जावा कोड में परिवर्तन करता हूं (यहां तक ​​कि कक्षा भी जीडब्ल्यूटी कोड से संबंधित नहीं हो सकती है), तो प्लगइन फिर से संकलित हो जाएगा। –

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