HeadlinesBriefing HeadlinesBriefing.com

Python 3.15 प्रदर्शन बेंचमार्क परिणाम

Hacker News •
×

एक बार फिर अक्टूबर आ गया है, और इसका मतलब है कि नए Python रिलीज़ को आज़माने का समय आ गया है (तकनीकी रूप से, मैं 3.15.0rc3 रिलीज़ का उपयोग कर रहा हूं, आधिकारिक 3.15 रिलीज़ कुछ दिनों बाद आएगी)। पिछले साल Python 3.14 के प्रदर्शन लेख की तरह, आज मैं मेरा नॉन-फॉर्मल Python benchmark साझा कर रहा हूं, जिसमें Python 3.15 की तुलना 3.10 तक वापस जाने वाले पुराने इंटरप्रेटर से की गई है। अगर आपको चार्ट और तालिकाओं में दिलचस्पी नहीं है और बस मेरा विश्लेषण पढ़ना चाहते हैं, तो अंत में निष्कर्षों वाले अनुभाग में कूद सकते हैं। जिसे मैं मेरा benchmark "नॉन-फॉर्मल" कह रहा हूं, उसका क्या मतलब है? किसी प्रोग्रामिंग भाषा की वस्तुनिष्ठ और सार्वभौमिक प्रदर्शन माप असंभव है। आप बस कुछ प्रोग्राम लिख सकते हैं और उन्हें चलाकर उनकी प्रदर्शन माप प्राप्त कर सकते हैं। अन्य प्रोग्राम समान प्रदर्शन विशेषताएं दिखा सकते हैं या वे ऐसा नहीं कर सकते, वास्तव में कोई नहीं जानता। मेरा इस benchmark के साथ इरादा सिर्फ Python के विभिन्न संस्करणों के बीच प्रदर्शन परिवर्तन का अहसास करना है, लेकिन मुझे स्पष्ट करना चाहिए कि मैं Python इंटरप्रेटर का व्यापक प्रदर्शन प्रोफाइल प्राप्त करने का प्रयास नहीं कर रहा हूं। अपने benchmark के लिए, मैं fibo.py और bubble.py नामक दो कार्यक्रम चलाऊंगा, जिन्हें आप देख सकते हैं। ये वही कार्यक्रम हैं जिनका उपयोग मैं इस benchmark के पिछले संस्करणों में किया था। पहला Fibonacci अनुक्रम के संख्या की गणना करता है, और दूसरा बबल सॉर्ट एल्गोरिदम का उपयोग करके संख्या की सूची को सॉर्ट करता है। मुझे ये दो कार्यक्रम दो वर्ग के एल्गोरिदम के प्रतिनिधि के रूप में चुना है। Fibonacci की गणना पुनरावृत्ति (recursion) द्वारा की जाती है, जिसे मुझे Python इंटरप्रेटर में कुछ हद तक अक्षम पाया है। दूसरी ओर, bubble sort केवल for-loops का उपयोग करता है, बिना किसी पुनरावृत्ति के। मेरा benchmark विभिन्न प्रकार के कार्यक्रमों को कवर करने का प्रयास नहीं करता है। विशेष रूप से, ध्यान दें कि मैं इस benchmark में I/O बंधित कोड शामिल नहीं कर रहा हूं। क्योंकि हाल के Python संस्करणों में कुछ प्रदर्शन में सुधार multi-threading के इर्द-गिर्द घूमते हैं, इसलिए मुझे प्रत्येक कार्यक्रम के लिए एक multi-threaded विविधता भी बनानी पड़ी, ताकि कुल मिलाकर चार अलग-अलग परीक्षण हों। पूरी परीक्षण मैट्रिक्स वास्तव में जटिल है, क्योंकि मुझे सभी Python संस्करणों के तहत चार कार्यक्रम विविधताओं को चलाना है, साथ ही उनमें से जिनमें JIT और free-threading विकल्प हैं। मुझे Py Py के नीचे परीक्षण करना पसंद है, क्योंकि इस इंटरप्रेटर ने पिछले दौर के इस benchmark में प्रभावशाली प्रदर्शन दिखाया है। और Python प्रदर्शन को व्यापक रूप से पारिस्थितिकी तंत्र में स्थान देने के लिए, मुझे Java Script (Node.js) और Rust में दो कार्यक्रमों का पोर्ट करना पड़ा है। यहाँ मेरा पूरा टेस्ट मैट्रिक्स है जिसे मैं काम कर रहा हूं: 2 टेस्ट स्क्रिप्ट: fibo.py: पुनरावृत्ति द्वारा Fibonacci संख्या की गणना; bubble.py: पुनरावृत्ति के बिना यादृच्छिक संख्या की सूची को सॉर्ट करना। 2 थ्रेडिंग मोड: एकल थ्रेड; 4 समानांतर थ्रेड। 6 Python संस्करण, साथ ही Py Py, Node.js और Rust के हालिया संस्करण: CPython 3.10, 3.11, 3.12, 3.13, 3.14, 3.15; Py Py 3.12; Node 26.3; Rust 1.97. 3 Python इंटरप्रेटर: मानक; Just-In-Time (JIT): केवल CPython 3.13+; Free-threading (FT): केवल CPython 3.13+. मेरे पिछले benchmark के पाठक याद कर सकते हैं कि मेरा मैट्रिक्स में Linux बनाम mac OS के लिए एक अतिरिक्त आयाम था। Given कि दोनों पिछले benchmark चलाने में उनके बीच कोई महत्वपूर्ण अंतर नहीं था, इसलिए इस बार mac OS के test को छोड़ दिया है, इसलिए सभी test मुझे Gentoo Linux चलाने वाले Intel Core i5 CPU के साथ मेरा Linux लैपटॉप पर किए गए। मुझे प्रत्येक प्रतिभागी की प्रदर्शन मापने के लिए test कार्यक्रम को तीन बार चलाना है और तीन चलाने के औसत अवधि लेना है। मैं नीचे साझा कर रहा हूं परिणाम तालिकाओं में, मुझे 3.15 संस्करण के साथ गति अंतर भी दिखाया गया है, और जब समझ में आता है तो एक दिए गए इंटरप्रेटर की पिछली संस्कृति के साथ गति अंतर भी दिखाया गया है। गति तुलना के लिए, मैं एक सरल अनुपात का उपयोग कर रहा हूं, जहां 1x समान गति का मतलब है, 0.5x का मतलब आधी गति (या कि इसे पूरा होने में दोगुना समय लगा)...

स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित