Terwijl ik deze zomer een aantal vroege Python 3.11-benchmarks heb uitgevoerd met de ontwikkelingsstatus van die tijd, gezien de Python 3.11-release van gisteren, heb ik een aantal nieuwe prestatietests van de officiële Python 3.11-versie uitgevoerd tegen eerdere Python 3 releases.
Vergelijkbaar met de eerdere ontwikkelingsbenchmarks voor Python 3.11, is Python 3.11 een enorme verbetering in de prestatieafdeling ten opzichte van eerdere versies van CPython. Dankzij het werk van het”Faster CPython Project”heeft Python 3.11 enkele dramatische prestatieverbeteringen ten opzichte van Python 3.10 en eerder.
De aankondiging van de release van Python 3.11 noemt 10~60% verbeteringen ten opzichte van Python 3.10 en een 1.22x speed-up voor zijn standaard benchmarksuite.
Met behulp van de officiële Python 3.11.0-bronnen van gisteren werden de Python-prestaties vergeleken met 3.10.6, 3.9.15 en 3.8.15. Alle Python-releases zijn gebouwd vanuit de broncode in release-modus en met LTO-optimalisaties tijdens het gebruik van GCC 12 en de andere standaardcomponenten van Ubuntu 22.10 LTS. Alle Python-benchmarks werden op dezelfde manier herhaald vanaf een AMD Ryzen 9 5950X-ontwikkelaarswerkstation.
In overeenstemming met de upstream-verwachtingen van Python en van mijn vroege benchmarks een paar maanden geleden, zijn de prestaties van Python 3.11 enorm verbetering ten opzichte van eerdere Python-releases:
Zoals blijkt uit benchmarking terug naar Python 3.8, is er normaal niet te veel variatie in de prestatieafdeling tussen CPython-releases. Maar met Python 3.11 is het een grote verandering om de prestaties te verbeteren en deze de facto Python-implementatie concurrerender te maken voor die van Pyston en PyPy.
Voor degenen die prestatiegevoelig werk in Python-code zelf uitvoeren, is het zeker de moeite waard om Python 3.11 zo snel mogelijk uit te proberen nu het in stabiele vorm is. Python 3.11 levert een aantal behoorlijk opmerkelijke prestatieverbeteringen ten opzichte van Python 3.10 en eerder.
Python 3.11 heeft prestatie-optimalisaties rond de opstarttijd, verschillende frame-optimalisaties, inline-python-functieaanroepen en nog veel meer, zoals beschreven in de 3.11 release-opmerkingen.
Van de tests die ik heb gedaan op Python 3.11 met de Ryzen 9 5950X op Ubuntu 22.10, kwam Python 3.11 32% sneller binnen dan de eerdere releases met de set Python-benchmarks die werd gebruikt.