Gestern noch war ein Spieltag mit 5 Ligen bei über 8 Sekunden. Heute: 1,99 Sekunden. Hier ist was ich gemacht habe.
Die Engpässe
Drei Hauptprobleme:
- Datenbank-Zugriffe: Jeder Spieltag hat hunderte DB-Queries ausgelöst. Lösung: Alle relevanten Daten einmal laden und im Speicher halten. Die MasterDB wird nur beim Spielstart gelesen.
- Match-Simulation: 45 Spiele sequentiell zu simulieren war zu langsam. Lösung: Batch-Processing — alle Spiele bis auf deins werden zusammen in einem optimierten Durchlauf berechnet.
- UI-Updates: ImGui hat bei jedem Frame alle Tabellen neu gerendert. Lösung: Dirty-Flags — nur neu rendern wenn sich tatsächlich Daten ändern.
Ergebnisse
- 1 Liga, 1 Spieltag: 0,4 Sekunden
- 5 Ligen, 1 Spieltag: 1,99 Sekunden
- 1 komplette Saison (5 Ligen): ~68 Sekunden
Das Ziel war „unter 3 Sekunden“ — 1,99 ist besser als erwartet. Und es gibt noch Optimierungspotenzial für die Zukunft.
Performance ist kein glamouröses Feature. Niemand sieht es auf Screenshots. Aber man spürt es — und ein träges Spiel tötet den Spielspass schneller als jeder Bug.