Selbst wenn ein anderes Format magischerweise doppelt so schnell beim Laden wie C4Group wäre, würde es den Spielstart nicht um viel beschleunigen. Hier mal ein paar Profilerscreenshots vom Laden von CMC - Black Thunder:
zng_inflate_fast
ist definitiv dabei, dass 7% des Ladens aus Gruppen mit dem Dekomprimieren der Gruppen verbracht werden, überrascht mich jetzt aber nicht. Ins Auge stechen tun viel mehr C4AulFuncMap::GetFunc
, was beim Scriptlinken aufgerufen wird (der Teil, der mit dem Loggen von C4AulScriptEngineLinked, n warnings, n errors
beendet wird), und CDecoderFrame::CopyPixels
, was beim Laden von Grafiken eine Rolle spielt. (Mit libjpeg
unter macOS/Linux sind es äquivalente Zahlen.)
Beim Aufrufbaum zeigt sich das Ganze noch deutlicher. (Angemerkt sei, dass C4DefList::Load
rekursiv aufgerufen wird und damit öfters mit verschiedenen Aufrufzeiten aufscheint). Der Großteil entfällt auf Mix_LoadWAV_RW
, aka dem Laden von Sounds, sowie dem Laden von Grafiken.
Und weiter unten taucht wieder unser Freund
C4AulFuncMap::GetFunc
auf.