Python-gebruikers klagen al lange tijd over de matige prestaties van de CPython-compiler. Daar gaat verandering in komen, zo blijkt uit een presentatie van Python-vader Guido van Rossum.
Van Rossum hield zijn presentatie tijdens de Language Summit, die deze week werd gehouden. Daarin vertelt hij met versie 3.11 van de programmeertaal de snelheid ervan te kunnen verdubbelen. Van Rossum vertelt dat hij gepensioneerd thuis zat en zich begon te vervelen. Daarom besloot hij bij Microsoft te gaan werken, waar hij de vrijheid kreeg om zelf een project uit te kiezen. Toen besloot hij terug naar zijn roots te gaan om Python te verbeteren.
Incrementele verbeteringen
Met een klein team, bekostigd door Microsoft, heeft Van Rossum een fork gemaakt van de CPython-compiler. Met de fork wil het team de prestaties van de compiler analyseren en onderzoeken of er manieren zijn om de prestaties ervan te verbeteren. Van Rossum wil met kleine incrementele veranderingen de prestaties van CPython verbeteren. Alle wijzigingen worden uiteraard open source.
Hard nodig
De prestatieverbeteringen zijn hard nodig. Onder het mom van simpelheid is er in de loop der jaren weinig gedaan aan de snelheid van CPython, maar dit heeft er wel voor gezorgd dat de prestaties ten opzichte van andere programmeertalen achterblijven. Verschillende externe partijen hebben al eigen compilers voor de populaire programmeertaal geschreven, waaronder Pyston, waarvan de nieuwste versie 30 procent sneller moet zijn dan CPython. Ook Facebook werkt aan verbeteringen aan CPython.
Optimalisaties
Van Rossum ziet al enkele manieren om de prestaties van CPython te verbeteren. Zo werkt zijn team aan aanpassingen voor de bytecode interpreter en verschillende andere optimalisaties. Het team weet nog niet zeker of het de snelheidsverdubbeling in versie 3.11 al gaat behalen, maar is “optimistisch en nieuwsgierig”. Versie 3.11 van Python komt vermoedelijk in het najaar van 2022 uit.
Mogelijk uiteindelijk vervijfvoudiging van prestaties
Uiteindelijk streeft het team naar verdere prestatieverbeteringen voorbij een verdubbeling. Van Rossum spreekt zelfs over een vervijfvoudiging van de prestaties. Al deze prestatieverbeteringen moeten voordelen met zich meebrengen voor gebruikers die Python-code draaien die zwaar op de processor leunt, voor gebruikers van websites die in Python gebouwd zijn en voor gebruikers van tools die Python gebruiken.
Het werk van Van Rossum en zijn team is te volgen in een GitHub-repository genaamd faster-cpython.