10 คะแนน โดย xguru 2022-11-02 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความจาก Evan You ผู้พัฒนา Vue.js/Vite
  • ตอนเปิดตัว Turbopack มีการเน้นว่า "เร็วกว่า Vite 10 เท่า" และถูกอ้างอิงใช้อย่างกว้างขวาง
    • เบนช์มาร์กที่ระบุว่า Next 13 + Turbopack ใช้เวลา 0.01 วินาทีสำหรับ React HMR ขณะที่ Vite ใช้เวลา 0.09 วินาที
    • แต่ในด้านประสิทธิภาพอื่นไม่มีอะไรที่เร็วกว่า 10 เท่า มีเพียง HMR เท่านั้นที่ได้ผลแบบนั้น
  • ตอนแรก Vercel ไม่ได้แนบข้อมูลเบนช์มาร์ก HMR จริงมาให้ จึงมีการนำ Next 13 และ Vite 3.2 มาเปรียบเทียบกันโดยตรง (เปิดเผยทั้งโค้ดและวิธีการทั้งหมด)
    • ผลการเปรียบเทียบจริงพบว่า Next HMR เร็วกว่าอยู่ราว 2 เท่า
    • แต่ผลนี้อาจต่างออกไปเล็กน้อย เพราะ Vite ใช้ Babel
    • หากใช้ SWC ที่เขียนด้วย Rust เหมือนกัน ความเร็วจะออกมาใกล้เคียงกันมาก
      (Vite ไม่ได้ใช้ SWC เพราะปัญหาเรื่องขนาด โดย Vite มีขนาด 19MB ขณะที่ SWC มีขนาด 58MB)
    • สิ่งที่น่าสนใจคือ เมื่อจำนวนคอมโพเนนต์ที่ import เพิ่มขึ้น Next/Turbo จะช้าลง 4 เท่า ขณะที่ Vite ช้าลงเพียง 2.4 เท่า
  • หลังจาก Evan เผยแพร่เบนช์มาร์กแล้ว Vercel ก็ได้เผยแพร่วิธีการทำเบนช์มาร์กบนบล็อกของตนด้วย
    • สรุปคือ ถ้าจะให้ Turbopack เร็วกว่า 10 เท่า จะต้องไม่ใช้ SWC, ต้องมีโมดูลมากกว่า 30k และต้องวัดเฉพาะเวลาที่ใช้ประเมินโมดูลที่ถูก hot update เท่านั้น จึงจะได้ผลเช่นนั้น

3 ความคิดเห็น

 
bichi 2022-11-02

nextjs ก็ยังเป็น nextjs เหมือนเดิมเลย

 
xguru 2022-11-02

เวลาเขียนในเบนช์มาร์กว่า "เร็วกว่าใครอยู่เท่าไร" ก็ควรเปิดเผยวิธีประเมินและข้อมูลให้ละเอียดตั้งแต่แรก..