- อธิบายเชิงทฤษฎีว่าทำไม Typia จึงเป็น TS runtime validator ที่เร็วที่สุด
- ภาษาที่เป็นไดนามิกอย่าง JS จะมีอ็อบเจ็กต์ทุกตัวเป็น
HashMap<string, Object>
- จึงสามารถเพิ่มหรือลบคีย์ใดก็ได้อย่างอิสระ
- แต่ก็ช้ากว่าเมื่อเทียบกับโครงสร้างคลาสแบบสแตติก
- เพราะภายใน HashMap จะเก็บสมาชิกไว้ในลิงก์ลิสต์
- V8 Engine มีสิ่งที่เรียกว่า Hidden Class Optimization
- หากดูแล้วไม่มีองค์ประกอบที่ควบคุมแบบไดนามิก ก็จะไม่ใช้ HashMap
- แต่จะเปลี่ยนไปใช้เป็นโครงสร้างคลาสแบบสแตติกแทน
- คลาสแบบสแตติกมีสมาชิกเรียงต่อเนื่องกันในหน่วยความจำ จึงให้ประสิทธิภาพที่ดีกว่า
- Typia สร้างโค้ดสำหรับตรวจสอบแต่ละประเภทแบบสแตติก (AoT compilation)
- runtime validator อื่น ๆ ใช้ลอจิกแบบไดนามิก (
for key in obj)
- นี่คือเหตุผลที่ Typia เร็วกว่า runtime validator อื่น ๆ
ยังไม่มีความคิดเห็น