- Typia'nın TS runtime validator'ları arasında neden en hızlı olduğunu teorik olarak açıklıyor
- JS gibi dinamik dillerde tüm nesneler
HashMap<string, Object> şeklindedir
- İstenilen herhangi bir anahtarın eklenip çıkarılabilmesi bunun sayesinde mümkün olur
- Ancak bunun karşılığında statik sınıf yapısına kıyasla daha yavaştır
- Çünkü
HashMap, öğeleri dahili olarak linked list içinde saklar
- V8 Engine'de
Hidden Class Optimization denen bir özellik vardır
- Dinamik olarak kontrol edilen öğe olmadığı anlaşılırsa
HashMap kullanmaz
- Bunun yerine statik sınıf yapısına dönüştürerek kullanır
- Statik sınıflarda üyeler bellekte ardışık yer aldığı için performans açısından avantajlıdır
- Typia, her tip için doğrulama kodunu statik olarak üretir (AoT compilation)
- Diğer runtime validator'lar ise dinamik mantık kullanır (
for key in obj)
- Typia'nın diğer runtime validator'lardan daha hızlı olmasının nedeni budur
Henüz yorum yok.