Login
Newsletter
Werbung

Do, 21. November 2013, 10:05

Software::Entwicklung

Python-Interpreter PyPy 2.2 freigegeben

Der Python-Interpreter PyPy wurde in Version 2.2 veröffentlicht. Dank des neuen inkrementellen Garbage Collectors sollen nun keine längeren Pausen mehr in dem Interpreter, der ohnehin schon wesentlich schneller als der Standard-Python-Interpreter ist, auftreten können.

PyPy

PyPy ist eine deutlich schnellere Alternative zum Standard-Python-Interpreter CPython (allerdings nur für Version 2.x). Aktualisierte Vergleiche der Entwickler zwischen PyPy 2.2 und CPython 2.7.2 zeigen, dass PyPy im Schnitt der ausgewählten Benchmarks über 6-mal schneller ist. Seine höhere Leistungsfähigkeit verdankt PyPy dem integrierten Tracing-JIT-Compiler, einem verbesserten Garbage-Collector und dem effizienteren Maschinencode, den der PyPy-Interpreter erzeugt.

PyPy 2.2 enthält als wesentliche Neuerung einen inkrementellen Garbage Collector. Dieser soll ein grundsätzliches Problem lösen, das die meisten Garbage Collectors (GC) plagt: Wenn es notwendig ist, Speicher freizugeben, um eine neue Speicheranforderung erfüllen zu können, kann das System unter Umständen eine merkliche Zeit damit beschäftigt sein, den Speicher zu reorganisieren. Ein inkrementeller GC teilt sich die Arbeit besser ein und vermeidet längere Pausen im Programmfluss weitgehend. Verbleibende Pausen, die sowohl durch den GC als auch durch den Just-in-Time-Compiler (JIT) verursacht werden können, sind nach Angaben der Entwickler kaum über 5 ms lang. Die Entwicklung des neuen GC wurde von der Raspberry Pi Foundation finanziert.

Die Entwickler entdeckten, dass im JIT-Compiler eine Optimierung möglich war. Bisher konnte ein Prozess mehr und mehr JIT-compilierten Code im Cache halten, selbst wenn dieser nie wieder benötigt wurde, da entsprechende Zähler nie zurückgesetzt wurden. In PyPy 2.2 werden die Zähler von Zeit zu Zeit zurückgesetzt, was dieses Problem zumindest teilweise lösen soll.

Das Modul NumPy, das Funktionen für die numerische Mathematik und mehrdimensionale Arrays enthält, wurde aufgeteilt. In PyPy ist nur noch ein Kernmodul enthalten, der Rest muss bei Bedarf separat installiert werden. Weitere Verbesserungen in PyPy 2.2 sind ein verringerter Overhead für Aufrufe, die nicht inline sind, erweiterte Verwendung des JIT-Compilers, Beschleunigung der JSON-Dekodierung, Beschleunigung einiger Puffer-Kopieroperationen, vollständige Implementierung aller Funktionen des Moduls os und ein rudimentäres C-API für Numpy, das mit cpyext zusammenarbeitet.

Die PyPy-Variante für Python 3 steht in Version 2.2 ebenfalls kurz bevor. Desweiteren ist ein Projekt in Arbeit, das Software Transactional Memory nutzt. Eine Übertragung der Arbeit an Numpy auf PyPy3 steht ebenfalls noch auf dem Plan. Spenden können die Komplettierung dieser Projekte unterstützen.

PyPy 2.2 ist für Linux, Mac OS X und MS Windows verfügbar. Der schnelle Python-Interpreter kann von der Downloadseite des Projekts heruntergeladen werden.

Werbung
Kommentare (Insgesamt: 5 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung