• อธิบายเชิงทฤษฎีว่าทำไม 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 อื่น ๆ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น