- Theoretische Erklärung, warum Typia unter den TS-Runtime-Validatoren am schnellsten ist
- Dynamische Sprachen wie JS behandeln alle Objekte als
HashMap<string, Object>
- Deshalb lassen sich beliebige Keys hinzufügen und entfernen
- Im Vergleich zu einer statischen Klassenstruktur ist das jedoch langsamer
- Der Grund ist, dass eine HashMap ihre Elemente intern in verketteten Listen speichert
- Die V8-Engine besitzt eine sogenannte Hidden-Class-Optimierung
- Wenn es keine dynamisch gesteuerten Elemente zu geben scheint, wird keine HashMap verwendet
- Stattdessen wird in eine statische Klassenstruktur umgewandelt und diese verwendet
- Bei statischen Klassen liegen die Member im Speicher zusammenhängend, was die Performance verbessert
- Typia erzeugt den Validierungscode für jeden Typ statisch (AoT-Kompilierung)
- Andere Runtime-Validatoren verwenden dynamische Logik (
for key in obj)
- Das ist der Grund, warum Typia schneller ist als andere Runtime-Validatoren
Noch keine Kommentare.