سؤال

في مسألة أداء عادل، كيف بيثون 3 مقارنة بيثون الإصدار 2.x؟

هل كانت مفيدة؟

المحلول

3.0 أبطأ من 2.5 على المعايير الرسمية. من "ما هو الجديد في بايثون 3.0" :

<اقتباس فقرة>   

والنتيجة الصافية من 3.0   التعميمات هي أن بايثون 3.0   يدير المؤشر pystone حوالي 10٪   أبطأ من بيثون 2.5. على الأرجح   أكبر سبب هو إزالة   خاص غلاف للصحيحة صغيرة.   هناك مجال للتحسين، ولكن   سيحدث بعد إصدارها 3.0!

نصائح أخرى

وانا اقول ان اي الفرق ستكون تافهة أدناه. على سبيل المثال، حلقات على قائمة سيكون بالضبط نفس.

والفكرة وراء بيثون 3 هي لتنظيف بناء الجملة اللغة نفسها - إزالة الاشياء ambigious مثل except Exception1, Exception2، تنظيف الوحدات القياسية (لا urllib، urllib2، httplib الخ)

وحقا ليس هناك الكثير الذي يمكنك القيام به لتحسين أداء انها، على الرغم من أنني أتخيل أشياء مثل جمع القمامة ورمز إدارة الذاكرة سيكون لها بعض القرص، لكنه لن يكون "نجاح باهر، يا مدونة قواعد البيانات الجيل إحصائيات يكمل في نصف الوقت! " تحسين - هذا شيء تحصل عليه من خلال تحسين رمز، بدلا من لغة

وحقا، أداء اللغة لا يهم - جميع اللغات تفسر تعمل أساسا في نفس السرعة. لماذا أجد بيثون "أسرع" هو كل المدمج في مستوى، moudles، ولطيفة إلى كتابة جملة - شيء <م> قد تحسنت في Python3، لذلك اعتقد في تلك الشروط، نعم، والأداء python3 ل هو أفضل ثم python2.x ..

تم إعادة تصميمها بالكامل المكتبة IO، وتنفيذ الجديد في بيثون النقي. ومع أن هذا هو تحسن وظيفي، وذلك في الوقت الحاضر أبطأ بكثير. العمل على قدم وساق لإعادة كتابة الجزء الأكبر من النظام الجديد في C. لمزيد من التفاصيل انظر هذه <لأ href = " http://bugs.python.org/issue4561 "يختلط =" noreferrer "> href="http://bugs.python.org/issue4565" rel="noreferrer"> التقارير .

وأعتقد في النهاية أنه من المبكر جدا لجعل هذا النوع من المقارنة فقط حتى الآن. انتظر حتى يتم الخروج من بيتا قبل القياس عليه. من المحتمل أن يكون مصقول المترجم بشكل كبير قبل الافراج ولكن عموما أعتقد بالنسبة لمعظم يستخدم أن أداء تكون قابلة للمقارنة وإذا كنت تقوم بتشغيل سرعة حقا التطبيق الواعي هو حقا الثعبان اللغة المناسبة لتكون تستخدمه؟

ما لم تكن هناك خطط لVM جديد من نوع (وأنا لم أسمع من أي خطط من هذا القبيل)، وهناك كل ما يدعو إلى الاعتقاد أنه في المدى الطويل أداء Py3K سوف، على الأقل مقارب، أي ما يعادل أن 2.5

وقد يستغرق بضعة أشهر، ولكن سيحدث في نهاية المطاف، كما لا يوجد في الميزات الجديدة من Py3k بطبيعته أقل performant لل.

لالختام، أنا لا أعتقد أن هناك مكان للقلق حول هذا الموضوع. لا نأمل في تحسن كبير من نوع ما.

وأنا لا إذا كان أسرع الآن، ولكن لا بد لي من أن نتوقع أنه في نهاية المطاف لن يكون لأن ذلك هو المكان أداء العمل الجديد سوف يحدث ولن backported كل ذلك.

scroll top