Rechercher dans ce blog

Wednesday, October 6, 2021

Python: Guido van Rossum arbeitet an Performance der Sprache - Golem.de - Golem.de

Der Autor von Python spricht über seine Arbeit in Sachen mehr Performance in Python bei Microsoft.

Python schneller ohne Pypy-, Cinder- oder Pyston-Kompromisse
Python schneller ohne Pypy-, Cinder- oder Pyston-Kompromisse (Bild: Jonathan Kriz via Flickr/CC-BY 2.0)

In einem Podcast von Software at Scale spricht Guido van Rossum über seine Arbeit bei Microsoft, wieso er sich dort für ein Performance-Projekt für die Programmiersprache entschieden hat und wo er die größten Optimierungspotenziale sieht.

Das Projekt, an dem van Rossum bei Microsoft arbeitet, ist nicht das erste, das versucht, Python zu mehr Performance zu verhelfen. In dem Podcast direkt angesprochen werden Pypy und Pyston.

Kompatibilität wurde nie wirklich gelöst.

Bei beiden Projekten sieht van Rossum die größte Schwierigkeit in Kompatibilitäten von bestehenden Programmen und den Extension-Modulen. Gerade davon, wie Pypy gelaufen ist, scheint van Rossum enttäuscht zu sein. "Es hat sich immer so angehört, als sei Pypy eine Art magische Lösung, von der nur wenige Menschen auf der Welt verstehen, wie sie funktioniert. Und diese Leute haben das gebaut und sich dann entschieden, andere Dinge zu tun", kritisiert van Rossum die ursprünglichen Entwickler. Man habe es einfach anderen überlassen, "die eigentlichen Probleme mit Pypy zu lösen", Probleme, die im Bereich Kompatibilität mit den Erweiterungsmodulen liegen. "Und die haben sie nie wirklich gelöst", sagt van Rossum.

Die Pyston-Leute hätten zwar von den Fehlern bei Pypy gelernt und eine CPython-basierte Lösung angestrebt, um so Extension-Modules-Kompatibilität zu garantieren. Die Garbage-Collection-Verbesserungen lobt van Rossum, anderes wiederum war für ihn kontraproduktiv. "Ich glaube, sie haben die Referenzzählung abgeschafft. Aus diesem Grund wurde das Verhalten vieler realer Python-Programme vollständig geändert." Letztlich war es also wieder fehlende Kompatibilität.

Facebooks CI Python (Cinder) wurde für van Rossum "tot geboren, oder zumindest wurde es der Welt in seiner toten Form offenbart". Auch hier ist der Grund eine Änderung der Objekt-Layouts, die wie im Fall der abgeschafften Referenzzählungen zu Inkompatibilitäten führt.

Stattdessen: Bytecodeoptimierungen

Gearbeitet wird bei Microsoft an einem Ansatz, der von Mark Shannon stammt - auch er ist Teil des Projektteams, in dem van Rossum mitwirkt. Mit Bytecode-Interpreter-Optimierungen soll bei voller Kompatibilität schon in CPython 3.11 in 2022 eine Performanceverdopplung drin sein. In ein paar Jahren, van Rossum spricht von vier Jahren, soll eine fünffache Geschwindigkeit in Aussicht stehen. Um das zu erreichen, soll Tiered Execution Verwendung finden, bei dem Code bei mehreren Durchläufen immer wärmer wird und dabei immer weitere Optimierungen in der Ausführung erhält. Als Optimierungen sind Typanpassungen im Interpreter, schnellere Calls und Returns, Geschwindigkeitsverbesserungen bei Binäroperationen, ein Zero-Overhead-Konzept für Exception-Handling, ein JIT-Compiler und einiges mehr geplant.

Adblock test (Why?)


Python: Guido van Rossum arbeitet an Performance der Sprache - Golem.de - Golem.de
Read More

No comments:

Post a Comment

One UI 5.1: Samsung kündigt Update-Start für ältere Galaxy-Smartphones an, los geht es u.a. mit Galaxy S20, S21 und S22 - Notebookcheck.com

Nachdem es vor wenigen Tagen bereits inoffizielle Informationen zum Rollout von Samsungs One UI 5.1 für die ersten Modelle jenseits der ne...