HeadlinesBriefing HeadlinesBriefing.com

Python 3.15 JIT बनाम 3.14 बेंचमार्क

Towards Data Science •
×

लेखक ने एक पिछले परीक्षण के तीन Python बेंचमार्क को Python 3.14 और Python 3.15 दोनों पर दोबारा चलाया, और हर संस्करण में JIT कंपाइलर को चालू और बंद करके देखा। पिछले दौर में, 3.14 के JIT ने Mandelbrot गणना को लगभग 25% और Levenshtein दूरी गणनाओं को 27% तेज़ किया, जबकि Dijkstra ग्राफ़ खोज में कोई सुधार नहीं हुआ।

Python 3.15 ने JIT को काफ़ी हद तक नए सिरे से बनाया है। 3.14 संस्करण संभावित कोड पथों का अनुमान लगाता था, जबकि 3.15 एक नए ट्रेसिंग फ़्रंट एंड का उपयोग करता है जो रिकॉर्ड करता है कि प्रोग्राम वास्तव में किस पथ पर चलता है। ऑप्टिमाइज़र में बुनियादी रजिस्टर आवंटन, अधिक कॉन्स्टेंट प्रोपेगेशन और कम रेफ़रेंस-काउंट संचालन भी जुड़े हैं। x86-64 और AArch64 के लिए कोड जनरेशन बेहतर हुआ है, और उत्पन्न मशीन कोड कम मेमोरी लेता है।

सभी चार कॉन्फ़िगरेशन (3.14 और 3.15, हर एक में JIT चालू और बंद) का परीक्षण यह अलग करता है कि 3.15 के इंटरप्रेटर में बदलावों का प्रभाव कितना है और उसके JIT का कितना। यह मायने रखता है, क्योंकि 3.14 और 3.15 की सीधी तुलना भ्रामक हो सकती है। 3.15 के इंटरप्रेटर में JIT से बाहर के बदलाव भी शामिल हैं, जिनमें आधिकारिक 64-बिट Windows बिल्ड में उपयोग होने वाले इंटरप्रेटर का एक बदलाव भी है।

Python रिलीज़ टीम के अनुसार, उसके x86-64 Linux बेंचमार्क सूट पर मानक इंटरप्रेटर की तुलना में ज्यामितीय माध्य में 7% से 8% सुधार है, और AArch64 macOS पर 11% से 12%। LLVM 21 केवल बिल्ड के समय आवश्यक है, इसलिए आधिकारिक बाइनरी का उपयोग करने वालों को इसे अलग से इंस्टॉल करने की ज़रूरत नहीं है।

लेखक के दोबारा परीक्षण से पता चलता है कि अधिक शक्तिशाली JIT उन्हीं तीन कार्यभारों को अधिक लाभ देता है, फिर भी यह हर प्रोग्राम की मदद नहीं करता, खासकर ऐसे कोड की जो अपना अधिकांश समय ऑब्जेक्ट आवंटन और कहीं और लागू संचालनों को कॉल करने में बिताता है।

स्रोत: Towards Data Science · HeadlinesBriefing द्वारा सारांशित