Ich checke das mit den Templates kurz.
dot hat geschrieben:Ok, ich geh mal davon aus dass du deine Gründe hast, aber wieso das nun nicht gehen soll erklärt das eigentlich noch nicht
Vielleicht wär es auch sinnvoller, statt soviel Energie in die Optimierung einer ohnehin nicht besonders idealen Schnittstelle zu stecken, es mal dabei zu belassen und stattdessen anzufangen, den alten Code zu refactoren?
Es
ist noch nicht einmal Code: Es ist ein Dateiformat, das Bytecode enthält, der eine virtuelle Maschine kontrolliert, die den Rasterizer Vertex für Vertex steuert – durch 200 Opcodes inklusive Subroutinen; Schleifen; bedingter Sprünge; und allem anderen, was einem das Leben schwer macht.
Es liegen ungefähr 8000 Assets in diesem Format vor. Zu anderen Formaten lässt sich das nicht konvertieren, weil die VM je nach Blickwinkel, LoD, und Situation einen anderen Pfad durch die Datei wählt, und dementsprechend unterschiedliche Daten ausspuckt.
eXile, jetzt bitte keine Paper über Programmflusskontrolle und Sprachoptimierung – Emulieren ist schon schwer genug; ich muss irgendwann fertigwerden ;)
Ich erreiche mit meiner Emulation bereits die 40-fache Leistung des Originals mit angehängtem Glide Wrapper. Trotzdem zeigt mir der Profiler, dass 8 % meiner Rechenzeit mit dem Kopieren der Funktionsparameter für die virtuellen Aufrufe verschwendet werden, obwohl es völlig unnötig ist. Hass.