[Typia] V8エンジンのHidden Class最適化
(dev.to)- TypiaがTSランタイムバリデータの中で最も高速な理由を理論的に説明
- JSのような動的言語では、すべてのオブジェクトは
HashMap<string, Object>- 任意のキーを追加・削除できるのはこのおかげ
- その代わり、静的なクラス構造に比べて遅い
- HashMapは内部的に要素をリンクドリストに保存するため
- V8 EngineにはHidden Class Optimizationというものがある
- 動的に制御する要素がないと判断されると、HashMapを使わず
- 代わりに静的なクラス構造へ変換して利用する
- 静的なクラスはメンバーがメモリ上で連続しており、性能上有利
- Typiaは各型に対する検証コードを静的に生成する(AoT compilation)
- 他のruntime validatorは動的なロジックを使う(
for key in obj) - これがTypiaが他のruntime validatorより高速な理由
まだコメントはありません。