Open-Source-Projekt von Google soll YouTube-Performance verbessern

Grumpy von Google – Transcompiler-Tool übersetzt Python nach Go
Kommentare

Google hat das neue Open-Source-Projekt Grumpy vorgestellt – ein Transcompiler-Tool mit dem sich Python-Code nach Go übersetzen lässt. Mithilfe von Grumpy will Google eine bessere Performance insbesondere für YouTube erreichen.

Zwar ist die Alphaversion von Grumpy unter der Apache License 2.0 Open Source, doch hinter dem Google-Projekt stecken Bemühungen den Frontend-Server von YouTube und das YouTube-API – beide hauptsächlich in CPython 2.7 geschrieben – in puncto Performance auf die Sprünge zu helfen. Laut dem ankündigenden Blogbeitrag von YouTube-Engineer Dylan Trotter arbeiten der YouTube-Frontend-Server und das API Millionen von Requests pro Sekunde ab. Der neuralgische Punkt dabei ist die Performance von concurrent workloads, also nebenläufigen Prozessen, in CPython.

Grumpy soll Concurreny-Probleme lösen

Experimente mit verschiedensten Python-Runtimes (u.a. Jython, PyPy, IronPython) hätten diese Concurrency-Probleme nur teilweise gelöst und regelmäßig andere Probleme verursacht. Die Lösung fanden die Google-Entwickler schließlich im eigenen Haus: Die von Google 2007 entwickelte Programmierprache Go passte am besten zum Use Case – eine Runtime, die auf Real-Time-Serving und Nebenläufigkeit optimiert ist.

Grumpy ist das Ergebnis dieser Bemühungen um bessere Performance. Das Tool ist eine experimentelle Runtime für Go. Grumpy ist in der Lage Python-Quellcode in Go-Quellcode zu übersetzen, der wiederum in nativen Code und nicht in Bytecode transkompiliert wird. „This means that Grumpy has no VM“, heißt es entsprechend in den einleitenden Sätzen auf der GitHub-Projektseite.

Der kompilierte Go-Code ist im Prinzip eine Reihe von Calls an die Grumpy-Runtime, einer Go-Bibliothek, die ähnlich wie das Python-C-API funktioniert.

Bisher kein Support für Python 3

Langfristig soll Grumpy ein „drop-in replacement“-Runtime für Python-Code dienen. Derzeit ist Grumpy jedoch auf CPython 2.7 limitiert – ein Umstand, der dem von Google beabsichtigten Einsatzzweck geschuldet ist. Ein Support für Python 3 ist vorerst nicht geplant. Die Frage danach beantwortete Dylan Trotter mit dem Hinweis auf den nicht geringen Arbeitsaufwand. Stattdessen legte Trotter interessierten Entwicklern ein Fork von Grumpy nahe, um alle Python-3-Features zu integrieren.

Darüber hinaus wies Trotter ausdrücklich auf den Alphastatus von Grumpy hin. Jedoch funktionieren die meisten Sprachkonstrukte und zahlreiche eingebaute Typen bereits.

 

Quelle Go-Maskottchen im Aufmacherbild: Renee French, CC BY-SA 3.0

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -