2009-11-07 12 views
12

मैं जो कह रहा हूं उसके लिए मैं स्रोत देना चाहता हूं लेकिन मेरे पास बस नहीं है, यह मैंने सुना है।ironpython गति अन्य .NET भाषाओं की तुलना कैसे करता है?

एक बार प्रोग्रामिंग प्रोफेसर ने मुझे बताया कि कुछ विशेष वस्तुओं में .NET बनाम पायथन के साथ किए गए कुछ सॉफ़्टवेयर बेंचमार्किंग ने .NET के पक्ष में 5: 8 का संबंध दिया है। यही कारण है कि का अजगर नेट की तुलना में बहुत धीमी नहीं किया जा रहा पक्ष में अपने तर्क था

यहाँ यह बात है, मैं IronPython की कोशिश करने के बाद से मैं भाषा के साथ वेब ढांचे मैं जानता हूँ कि सबसे अधिक (asp.net) जोड़ सकता है चाहते हैं मुझे सबसे ज्यादा पसंद है (पायथन) और मैं पाइथन में एएसपीनेट में वीबीनेट या सी # के साथ एएसपी.नेट में प्रोग्राम की गति बनाम प्रोग्राम की गति के बारे में सोच रहा था। क्या इस पर कोई सॉफ्टवेयर बेंचमार्किंग है?

इसके अलावा, अन्य .NET भाषाओं की तुलना में आयरनपीथन की गति समान नहीं होनी चाहिए, क्योंकि पाइथन के विपरीत आयरनपीथन को .NET इंटरमीडिएट कोड को संकलित करना पड़ता है? क्या कोई मुझे इन मुद्दों पर प्रकाश डाल सकता है?

अभिवादन

+1

जब आपने एक बेंचमार्क प्रोग्राम लिखा और इसे चलाया, तो आपने क्या देखा? नेट की क्या विशेषताएं आप उपयोग करना चाहते हैं? –

+0

मैं इसके लिए एक बेंचमार्क कार्यक्रम लिखा नहीं किया।मुझे आश्चर्य है कि सामान्य रूप से एक उल्लेखनीय अंतर है, लेकिन यदि आप बहुत अधिक निर्भर करता है जिसमें आप उपयोग करते हैं तो मुझे लगता है कि वहां नहीं है। हम क्षेत्रीय कंपनियों के लिए सामान्य प्रशासनिक सॉफ्टवेयर लिखते हैं जिनमें कोई बड़ी यातायात मांग नहीं होती है और जब मैंने पूछा तो मैं किसी विशेष परियोजना में सोच नहीं रहा था। यह (बहुत) संभावना है कि मैं आपके पास तकनीकी स्तर पर नहीं हूं, लेकिन मैंने इंटरनेट में कुछ मानक देखा है जब अधिकांश चीजें पाइथन को अन्य भाषाओं की तुलना में धीमी गति से सूचीबद्ध किया गया है, और मुझे आश्चर्य है कि यह पाइथन के लिए समान है IronPython .net जबाब – Pablo

+0

के लिए thxs साथ संबंध में हमेशा सच है "बहुत ज्यादा है, जिसमें सुविधाओं आप उपयोग निर्भर करता है"। सामान्य मानक बेकार हैं। आप किस विशेष विशेषताओं में रूचि रखते हैं? उन सुविधाओं के लिए आईपीथन और सी # के बीच बेंचमार्क लिखने से आपको क्या रोक रहा है? –

उत्तर

9

यहाँ IronPython, CPython, और सी # (दूसरों के बीच) के बीच तुलना के साथ दो दिलचस्प लिंक कर रहे हैं:

  • CPython बनाम सी # (मोनो) benchmarks, साइट पर विस्तृत कई कार्यक्रमों के आधार पर ।
  • संस्करण 2.6 के लिए पाइस्टोन और पायबेंच पर आधारित, साइथॉन बनाम आयरनपीथन benchmarks

तो जाहिर है कि यह आपके प्रोफेसर ने आपको बताया है। लेकिन जैसा कि आप जानते हैं, यह आपके द्वारा उपयोग किए जा रहे कार्यों पर निर्भर करता है। जबकि सी # दृढ़ता से लिखा गया

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

मैं आमतौर पर विकिपीडिया लेख का हवाला देते हैं करने के लिए नफरत है, लेकिन यह एक अच्छा प्रारंभिक बिंदु है: http://en.wikipedia.org/wiki/Dynamic_Language_Runtime

अब अपनी परियोजना के लिए वापस आने के लिए, प्रदर्शन शायद अपने एल्गोरिदम/heuristics पर अधिक निर्भर हो जाएगा - तुम कैसे एक प्रश्न उदाहरण के लिए डेटाबेस - भाषा की तुलना में। यदि आप वेब ढांचे से परिचित हैं और इससे खुश हैं, तो पहले कुछ ही आपको कम करने के लिए कुछ संभावित पर्सेंट प्राप्त करने के बजाय एक ही वातावरण के साथ रहना अच्छा विचार है। यह वही नहीं होगा यदि एप्लिकेशन निश्चित रूप से सीपीयू-गहन था।

+1

"सी # दृढ़ता से टाइप किया गया है"। क्या आपका मतलब "स्थाई रूप से टाइप किया गया" है? या "दृढ़ता से टाइप की गई चरम घोषणाएं"? पायथन का प्रकार बाध्यकारी काफी मजबूत है, लेकिन यह चर गतिशील हैं। –

+0

मेरा मतलब है दृढ़ता से घोषणाओं, जो निश्चित रूप से संकलक ज्यादा क्या अजगर अपने बतख टाइपिंग की वजह से प्राप्त कर सकते हैं की तुलना में विधानसभाओं में अंतिम परिणाम के साथ नज़दीकी बढ़ाने की अनुमति देता है टाइप किया है। – RedGlyph

+0

दुर्भाग्य CPython बनाम IronPython मानक के अनुसार हुआ था या तो केवल एक दौर रिपोर्टिंग, या कुछ मामलों में निश्चित रूप से केवल * चल * एक दौर है, जो उन्हें बहुत संदिग्ध बनाता है। –

1

आप नेट ट्रेसिंग को सक्षम कर सकते हैं, जो पृष्ठ के नीचे समय की जानकारी आउटपुट करता है। सी #/नेट में एक ऐप बनाएं और पाइथन का उपयोग करके एक ऐप बनाएं और समय में मतभेद देखें। यह आपको एक निश्चित उत्तर देगा।

सभी ईमानदारी में मुझे लगता है कि आप सी # का उपयोग करके बेहतर हैं, यह आपके लिए वीएस पर्यावरण के लिए विकसित होने के लिए "तेज़" है और यह तेजी से चलने जा रहा है क्योंकि इसे गतिशील भाषा रनटाइम का उपयोग नहीं करना है ।

+0

मुझे पता है, लेकिन मुझे Python से क्या अपील करता है यह है आपको कम कोड लिखना है, इसके अलावा मुझे लगता है कि आप सी # में पुनः लिखने के बिना ऐसा नहीं कर सकते हैं (हालांकि पूरी तरह से सुनिश्चित नहीं है) http://www.ironpythonresource.com/post/2008/08/23/IronPython- गतिशील रूप से- निर्माण -objects-and-binding-them-to-a-form.aspx – Pablo

+0

शायद नई सुविधाओं के साथ सी # 4.0 में? – Pablo

+1

एक गतिशील रूप से टाइप की गई भाषा के रूप में पाइथन आमतौर पर सी # के साथ विकसित करने के लिए तेज़ है। यदि आप पाइथन के लिए इंटेलिजेंस इत्यादि के साथ विंग जैसे आईडीई का उपयोग करते हैं, तो आपको सी # के लिए विजुअल स्टूडियो की पेशकश करने के लिए बहुत कुछ मिलता है। – fuzzyman

0

आयरनपीथन सी # से काफी धीमी होगी। आप तुलनात्मक रूप से सीपीथॉन और सी के बीच तुलना के बारे में सोच सकते हैं, लेकिन अंतराल के साथ कुछ हद तक छोटा है।

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