2008-10-04 22 views
22

सिर्फ प्रदर्शन के सवाल पर, पायथन 3 पाइथन 2.x की तुलना कैसे करता है?प्रदर्शन: पायथन 3.x बनाम पायथन 2.x

+8

इस प्रश्न के दो साल बाद पूछा गया, मुझे आश्चर्य है कि उत्तर अभी भी वही है। – ripper234

+0

इस सवाल के सात साल बाद पूछा गया, जवाब अभी भी वही है। –

उत्तर

28

3.0 आधिकारिक मानकों पर 2.5 से धीमा है। "What’s New in Python 3.0" से:

3,0 सामान्यीकरण का शुद्ध परिणाम है कि अजगर 3.0 10% अजगर 2.5 की तुलना में धीमी आसपास pystone बेंचमार्क चलाता है। सबसे अधिक संभावना सबसे बड़ा कारण छोटे पूर्णांक के लिए विशेष-आवरण को हटाने का सबसे बड़ा कारण है। सुधार के लिए कमरा है, लेकिन 3.0 जारी होने के बाद होगा!

+1

यह अभी भी 2015 में आम तौर पर सच है, यदि प्रश्न में कोड में बहुत सारे स्ट्रिंग ऑपरेशंस हैं, तो पाइथन 2.7 नवंबर 2015 तक आमतौर पर पाइथन 3.5 की तुलना में तेज़ है। –

6

मैं कहूंगा कि कोई अंतर तुच्छ से नीचे होगा। उदाहरण के लिए, एक सूची में लूपिंग सटीक वही होगी।

पायथन 3 के पीछे विचार भाषा सिंटैक्स को साफ करना है - except Exception1, Exception2 जैसे प्रतिष्ठित सामान को हटाएं, मानक मॉड्यूल साफ़ करें (कोई urllib, urllib2, httplib आदि)।

वास्तव में आप इसके प्रदर्शन में सुधार करने के लिए बहुत कुछ नहीं कर सकते हैं, हालांकि मुझे लगता है कि कचरा संग्रह और मेमोरी प्रबंधन कोड जैसी चीजें कुछ बदलावों में होंगी, लेकिन यह "वाह, मेरी डेटाबेस सांख्यिकी पीढ़ी नहीं होगी" कोड आधे समय में पूरा हो जाता है! " सुधार - भाषा के बजाए कोड को बेहतर बनाकर आपको कुछ मिलता है!

वास्तव में, भाषा का प्रदर्शन अप्रासंगिक है - सभी व्याख्या की गई भाषा मूल रूप से एक ही गति पर कार्य करती हैं। मुझे पाइथन "तेज" क्यों बनाया गया है, सभी अंतर्निर्मित moudles, और अच्छी तरह से लिखने वाले वाक्यविन्यास - में को Python3 में सुधार किया गया है, इसलिए मुझे लगता है कि उन शर्तों में, हाँ, python3 का प्रदर्शन बेहतर है python2 .x ..

+3

"सभी व्याख्या की गई भाषा मूल रूप से एक ही गति पर कार्य करती हैं" बहुत सच नहीं है। व्याख्या कोड कोड को मूल कोड में संकलित किया जा सकता है, हाल ही में जावास्क्रिप्ट वीएम प्रतियोगियों को देखें। –

+4

जिसका मतलब भाषा के बारे में कुछ भी नहीं है, लेकिन इसके लिए लिखे गए कंपाइलर। आप * एक पाइथन कंपाइलर हो सकता है और यह लगभग जावास्क्रिप्ट के रूप में तेज़ होगा। – gbjbaanb

0

मुझे यह तेज़ नहीं है, लेकिन मुझे उम्मीद है कि अंत में ऐसा होगा क्योंकि वह नया प्रदर्शन कार्य होगा और उन सभी को वापस नहीं भेजा जाएगा।

3

जब तक कि किसी प्रकार के नए वीएम की योजना नहीं है (और मैंने ऐसी किसी भी योजना के बारे में नहीं सुना है), तो यह मानने का सभी कारण है कि लंबे समय तक पीई 3 के प्रदर्शन का प्रदर्शन कम से कम होगा asymptotically, 2.5

में कुछ महीनों लग सकते हैं, लेकिन अंततः ऐसा होगा, क्योंकि Py3k की नई सुविधाओं में कुछ भी निहित रूप से कम प्रदर्शन करने वाला नहीं है।

निष्कर्ष निकालने के लिए, मुझे नहीं लगता कि इसके बारे में चिंता करने की जगह है। न तो किसी तरह के बड़े सुधार की उम्मीद है।

+0

(अद्यतन 30.03.2010): यह उत्तर बहुत प्रासंगिक नहीं है आज, चूंकि अनदेखा-निगल पाइथन 3 में विलय किया जा रहा है और ध्यान देने योग्य गति प्रदान करता है। निष्पक्ष होने के लिए, यह * एक नया वीएम है :-) –

4

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

5

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

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