Guido van Rossum, maker van de programmeertaal Python, sprak in zijn rapport op de Python Language Summit over plannen om de prestaties van CPython te optimaliseren. Met versie 3.11, die in 2022 wordt verwacht, hopen de ontwikkelaars de prestaties te verdubbelen. Het CPython-optimalisatieproject wordt uitgevoerd door een klein team ontwikkelaars van Microsoft, waar Guido onlangs bij kwam.
Bij de implementatie van het project zijn de ontwikkelaars van plan zich aan een aantal beperkingen te houden, zoals het handhaven van volledige compatibiliteit op ABI- en codeniveau, evenals de ontoelaatbaarheid van het verhogen van de prestaties als gevolg van vertraging in randgevallen. Onder de componenten die kunnen worden gewijzigd om de prestaties te verbeteren, zijn bytecode, gegevensplaatsing in het geheugen, compiler en interpreter.
De ontwikkelingen van het project worden gepubliceerd in een aparte, snellere cpython-repository. Een van de projectdeelnemers, die eerder de HotPy JIT-compiler voor CPython ontwikkelde, publiceerde een plan volgens welke hij het realistisch acht om de productiviteit vijf keer te verhogen en dit resultaat te bereiken in de release van Python 3.13. Het project is verdeeld in vier fasen:
- Python 3.10 is van plan om optimalisaties in de tolk te implementeren die verband houden met het aanpassen van het interpretatieproces aan typen en waarden tijdens runtime.
- De release van Python 3.11 zal naar verwachting verbeteringen introduceren in de runtime en sleutelobjecten, evenals de opname van veel kleine gespecialiseerde optimalisaties, zoals het versnellen van binaire operatoren en het werken met gehele waarden die in één machinewoord passen, waardoor de bellen en terugkeren vanuit functies, waardoor de overhead tijdens de werking wordt verminderd met geheugen- en uitzonderingsafhandeling.
- Python 3.12 introduceert een eenvoudige JIT-compiler voor een klein deel van de gespecialiseerde code.
- Python 3.13 voegt nieuwe runtime-mogelijkheden voor het genereren van native code toe en uitgebreid gebruik van de JIT-compiler.
Bron: opennet.ru
