एरलांग आई/ओ-बाध्य अनुप्रयोगों के लिए चमकता है, यानी, जिनकी सीमित कारक आई/ओ ऑपरेशंस की विलंबता और थ्रूपुट है, जिस पर निर्देश सीपीयू पाइपलाइन के माध्यम से निर्देशित किए जा सकते हैं। वेब सर्वर और डेटाबेस I/O- बाध्य अनुप्रयोगों के अच्छे उदाहरण हैं: सीमित कारक CPU की बजाय डिस्क और नेटवर्क होने की संभावना है। परंपरागत रूप से "गणना-भारी" अनुप्रयोगों में क्रिप्टोग्राफिक उपकरण और वैज्ञानिक सिमुलेशन शामिल हैं।
क्यों Erlang सी और फोरट्रान जैसी भाषाओं मैच के लिए जब यह गहन समस्याओं computationally की बात आती है, तो हम कोड पीढ़ी और कैश-मित्रता जैसी चीजों पर विचार करना चाहिए विफल रहता है के रूप में ... मैं इसे आजमाइए होगी:
- कोड जनरेशन: आम तौर पर जब आप एक एरलांग प्रोग्राम शुरू करते हैं, तो यह threaded code पर आधारित virtual machine बीईएएम में चलाया जाएगा। जबकि बीएएएम अधिकांश उद्देश्यों के लिए काफी अच्छा प्रदर्शन करता है, लेकिन आधुनिक ऑप्टिमाइज़िंग सी कंपाइलर द्वारा उत्पन्न कोड की तरह यह तार्किक "निर्देश" के प्रति अधिक अधिक ओवरहेड है। हायपीई प्रोजेक्ट एरलांग के लिए देशी कोड कंपाइलर प्रदान करता है जिसे दो साल पहले मुख्य ओटीपी स्रोत पेड़ में एकीकृत किया गया था *। हालांकि यह निश्चित रूप से एर्लांग की संख्या क्रंचिंग क्षमता में सुधार करता है, फिर भी यह एक अच्छी तरह से लिखित सी या फोरट्रान कार्यक्रम से मेल खाने में कठिन समय लगेगा।
- कैश-मित्रता: आधुनिक कंप्यूटरों में स्मृति प्रणाली एक बड़ी बाधा है: मुख्य स्मृति से पढ़ने से सैकड़ों प्रोसेसर चक्र हो सकते हैं! इस समस्या को हल करने के लिए, सीपीयू डिजाइनर मेमोरी विलंबता को छिपाने के लिए कैश के कई स्तर पेश करते हैं। कैश कंप्यूटर प्रोग्राम के दो प्रमुख गुणों का फायदा उठाते हैं: अस्थायी और स्थानिक इलाके - यानी, स्मृति के क्षेत्र जिन्हें हाल ही में संदर्भित किया गया था (और आस-पास के क्षेत्रों) को फिर से संदर्भित किया जा सकता है। सी और फोरट्रान जैसी भाषाएं कहां और कैसे स्मृति आवंटित की जाती हैं, इस पर नियंत्रण का एक बड़ा सौदा प्रदान करता है, जिससे प्रोग्रामर को कैश के साथ अच्छी तरह से खेलने के लिए एल्गोरिदम ट्यून करने में सक्षम बनाता है। वही आम तौर पर एरलांग जैसी गतिशील भाषाओं के लिए नहीं होता है, जहां प्रोग्रामर से स्मृति आवंटन छुपाया जाता है और वर्चुअल मशीन द्वारा स्वचालित रूप से संभाला जाता है।
- कोड का आकार: स्थानिक इलाके के बारे में तर्क कोड के लिए भी है; Erlang कोड, चाहे मूल या बाइटकोड रूप में, आमतौर पर इसी संकलित सी कोड से बड़ा होगा। यह निर्देश कैश में अधिक बार याद आती है।
ध्यान रखें कि यह केवल हिमशैल की नोक है, और यह कि मैं एरलांग या भाषा कार्यान्वयन में कोई विशेषज्ञ नहीं हूं। इस तथ्य को न दें कि एरलांग शायद कभी भी वैज्ञानिक सिमुलेशन नहीं चलाएगा, हालांकि; कई अनुप्रयोगों के लिए, यह एक बिल्कुल शानदार भाषा है।
* हायपीई डेबियन में एरलांग-बेस-हाइप पैकेज या ./configure --enable-hipe
स्रोत स्रोत से उपलब्ध है।
स्रोत
2012-06-28 19:45:33
इसका हिस्सा यह है कि अन्य भाषाएं * अधिक * उपयुक्त हैं; Erlang का मजबूत सूट, संख्यात्मक एल्गोरिदम नहीं कहता है। इसके लिए आप सी/फोरट्रान/आदि का उपयोग करेंगे। –
इसकी वजह यह है कि गणना में एरलांग से कुछ और बेहतर है। Erlang अभी भी गणना करता है और यदि एक कम्प्यूटेशनल समस्या 'parallerised' हो सकता है, erlang भी बेहतर प्रदर्शन कर सकते हैं। –