Wer jemals versucht hat, eine hochperformante 60-FPS-Gameloop in einer skriptgesteuerten Engine zu bauen, stößt schnell auf ein fundamentales Problem: Speichermanagement. Sobald der Garbage Collector (GC) anspringt, stockt das Bild. In KnotenCore (Sprint 109) haben wir dieses Problem an der Wurzel gepackt und Heap-Allokationen komplett aus der heißesten Schleife verbannt.
Der Feind der Performance: Mutexe und Heap-Allokationen
Zu Beginn der KnotenCore-Entwicklung verwendeten wir einen klassischen, threadsicheren Ansatz zur Verwaltung des Tastatur-Status: Ein global synchronisiertes Mutex<HashSet<String>>. Jeder Tastendruck führte zu einer neuen String-Allokation auf dem Heap, gefolgt von einem Lock-Wartezyklus. In einer Game-Loop, die hunderte Male pro Sekunde "W", "A", "S" und "D" abfragt, führte dies zu einer extremen Lock Contention (Sperrkonflikt) – die CPU verschwendete kostbare Zyklen durch Warten.
„Die GC-Pause ist der Tod der Immersion. Jede Allokation im kritischen Pfad ist eine tickende Zeitbombe für Framedrops.“
Die Hardwarenahe Lösung: [AtomicBool; 256]
Das Konzept der "Lock-Free Revolution" in Sprint 109 markierte den entscheidenden Wendepunkt. Anstatt teure String-Objekte zu hashen und Mutexe zu sperren, mappen wir den Status jeder physischen Taste direkt in ein statisches Array aus atomaren Booleans: einem [AtomicBool; 256] in der FFI-Bridge.
// O(1) Polling ohne Locks oder Heap-Allokationen
pub fn registry_is_key_pressed(keycode: usize) -> bool {
KEY_STATES[keycode].load(Ordering::Relaxed)
}
Kompromisslose AAA-Performance
Durch diesen Architekturwechsel passiert beim Abfragen einer Taste in der KnotenCore Virtual Machine folgendes: Ein CPU-Befehl lädt den atomaren Wert aus dem L1/L2-Cache. Kein Mutex. Kein Heap. Keine Strings. Keine Pointersprünge in einem HashSet. Wir haben eine Latenz-Garantie, die so hart und berechenbar ist wie in AAA-C++-Engines, aber gesichert durch Rusts Compiler.
Das Ergebnis? KnotenCore kann interaktive WGPU-Szenen mit Tausenden von Entities handhaben, während die Input-Latenz de facto gegen Null geht. Die Engine ist damit architektonisch bereinigt und bereit für anspruchsvollste KI-Agenten-Simulationen.
