Klinke
|||||
Es wiederspricht der Idee eines guten JIT compiler vor dem Start etwas zu kompilieren, da die während der Laufzeit gewonnen Information benutzt wird, um den VM-Code zu optimieren (nennt sich Dynamische Optimierung). Die Idee beim Programm-Start mal möglichst alle Branches aufzurufen, hatte ich auch mal, aber davor war ich dann doch zurückgeschreckt, vor allem da dies wegen der dynamischen Optimierung recht wenig garantiert.Kannst du das Kompilieren des kompletten Codes nicht irgendwie forcieren? Evtl. gibt es ja einen Befehl dafür?
Ansonsten könntest du vielleicht beim Programm-Start irgendwas hinhacken was den entsprechenden Branch benutzt? (z.B. irgendeinen Dummy-Loop aufnehmen und gleich wieder löschen)
Hmm, es werden ja diese ".pyc"-Dateien erzeugt, die den sog. "Bytecode" enthalten. Ich denke, die sind schon fertig kompiliert (wodurch es aber auch nicht viel schneller wird).
Die Standard Python Implementierung benutzt ja auch keine JIT. Gibt es allerdings auch für Python in Form von PyPy, welches aber leider nicht mit z.B. pandas kompatibel ist (für irgendwelche MIDI-Tools könnte es aber reichen, habe das allerdings nie getestet, halte eigentlich auch sehr wenig von Python, so dass ich mich in meiner Freizeit davon fern halte).