- บทความจาก 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 ความคิดเห็น
nextjs ก็ยังเป็น nextjs เหมือนเดิมเลย
Turbopack: ผู้สืบทอดของ webpack ที่เขียนด้วย rust
เวลาเขียนในเบนช์มาร์กว่า "เร็วกว่าใครอยู่เท่าไร" ก็ควรเปิดเผยวิธีประเมินและข้อมูลให้ละเอียดตั้งแต่แรก..