লেখক একটি আগের পরীক্ষার তিনটি 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