Ich überlege, IronPython als Skriptsprache für eine Anwendung, die ich schreibe, einzubetten. Um es auszuprobieren, habe ich IronPython 2.0 heruntergeladen und den interaktiven Interpreter gestartet. Das Starten der Sache dauert ungefähr 5 Sekunden auf meinem Intel Quad Core mit 6 GB Speicher. Ich kann mir kaum vorstellen, wie viel Verzögerung das für eine weniger leistungsfähige Maschine bedeuten würde.
Basierend auf diesen Benchmarks scheint es so Die Leistung von IronPython ist eigentlich gar nicht so schlecht. Oder ist es? Habe ich während der Installation etwas falsch konfiguriert? Oder ist das ein Problem mit dem interaktiven Interpreter?
IronPythons Leistung ist wirklich ziemlich gut. Die Startleistung, die Sie erhalten, hat mit der .NET-Laufzeit zu tun. .NET-Anwendungen haben in der Regel eine langsame Startzeit, da viele Assemblys geladen werden und einige von ihnen (zumindest einige Klassen) im Handumdrehen kompiliert werden.
Dies ist das erwartete Verhalten in .NET. Die tatsächliche Laufzeitleistung ist viel besser. Sogar die Startleistung kann verbessert werden, indem Sie die IronPython-Assembly vorkompilieren und eine Kopie in den GAC: globalen Assemblycache Ihres Computers einfügen. Dies kann mithilfe der gacutil.exe
erfolgen.
Sie können auch die Standardbibliothek, die mit IronPython geliefert wird, vorkompilieren, um eine wesentlich bessere Startleistung zu erzielen. Es gibt ein pyc.py-Beispiel, das dies tun kann.
Die Anzahl der Kerne wird keinen großen Unterschied zu Startup machen:)
Der Startvorgang ist auf einem 64-Bit-Betriebssystem aufgrund von Leistungsunterschieden zwischen 32-Bit- und 64-Bit-Jittern besonders langsam. Wenn Sie ein 64-Bit-Betriebssystem verwenden, aber keinen 64-Bit-Prozess benötigen, versuchen Sie Folgendes:
Die 32-Bit-Version sollte Ihnen einen viel besseren Start geben - aber immer noch nicht annähernd so gut wie der CPython-Start. Aber daran arbeiten wir weiter.
Die Startzeit und die laufende Leistung stehen nicht in direktem Zusammenhang. Java-Applets haben den größten Teil ihres Rufs für Langsamkeit, nicht weil das Applet langsam lief, sondern weil es die Laufzeit in Minuten brauchte, um loszulegen. Wenn Sie eine Desktop-App erstellen, würde ich mich über die Startleistung Gedanken machen. Wenn Ihr laufender Server-Code die Laufzeit immer angibt, ist dies kein Problem.
Tags und Links .net performance ironpython