2010-02-05 9 views
7

सामान्य "गैर देशी" संकलन की तुलना में +native विकल्प के साथ Erlang .erl स्रोत संकलित करते समय सीमाएं/बाधाएं क्या हैं?"मूल" के साथ संकलन की बाधाओं/सीमाएं क्या हैं?

संबंधित करने के लिए: Erlang OTP release compiles with HiPE?

+0

धन्यवाद, मैं बस सोच रहा था कि क्यों हिप ने मेरे कार्यक्रम को तेज नहीं किया। मूल के साथ यह दो गुना तेजी से चलता है। – Koistinen

उत्तर

11

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

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

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

संक्षेप में, मुख्य स्थान जहां मूल संकलन शायद अब के लिए अनुशंसित नहीं है, स्टैंडअलोन उत्पादों (जैसे एक ब्लैक-बॉक्स सर्वर जो आप किसी ग्राहक को वितरित करते हैं) में है, जहां स्थिरता, रिमोट डिबगबिलिटी और कम मेमोरी उपयोग आपकी मुख्य चिंता है और गणना की गति आमतौर पर नहीं होती है।

+0

"मुख्य स्थान जहां मूल संकलन शायद अब के लिए अनुशंसित नहीं है, स्टैंडअलोन उत्पादों में है": ऐसा लगता है कि @rvidring ने संबंधित पोस्ट में क्या कहा था। – jldupont

+0

उस पोस्ट को नहीं ढूंढ रहा है जिसका आप उल्लेख कर रहे हैं। सूचक? – RichardC

+3

मैंने क्या कहा है? :-) मुझे यह भी नहीं लगता है। – rvirding

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