8 คะแนน โดย xguru 2025-12-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือเบนช์มาร์กที่มีขนาดเล็กมาก ไม่เกิน 10KB พัฒนาขึ้นเพื่อวัดประสิทธิภาพของโค้ดได้อย่างแม่นยำ
  • ทำงานบนพื้นฐานของ Web API และรองรับ การวัดเวลาอย่างแม่นยำ ด้วย process.hrtime หรือ performance.now
  • สามารถรันได้ในสภาพแวดล้อมรันไทม์ JavaScript ที่หลากหลาย เช่น Node.js, Deno, Bun
  • มี ฟีเจอร์วิเคราะห์เชิงสถิติ : รองรับการคำนวณ latency และ throughput เช่น ค่าเฉลี่ย, ส่วนเบี่ยงเบนมาตรฐาน, ค่าความคลาดเคลื่อน, ความแปรปรวน, เปอร์เซ็นไทล์ เป็นต้น
  • โหมดรันแบบ concurrency : สามารถรันแบบขนานในระดับ task หรือ bench ได้ และควบคุมจำนวนการรันพร้อมกันสูงสุดด้วยตัวเลือก threshold
  • โครงสร้างแบบ event-driven ที่ขยายต่อได้ : คลาส Bench และ Task สืบทอดจาก EventTarget และสามารถลงทะเบียน event listener เช่น cycle, abort ได้
  • ตรวจจับฟังก์ชัน asynchronous อัตโนมัติ : ตรวจสอบ AsyncFunction หรือการคืนค่า Promise เพื่อเปิดโหมด async โดยอัตโนมัติ
  • การแสดงผลและแปลงผลลัพธ์ : เมธอด bench.table() จะแปลงผลลัพธ์ให้อยู่ในรูปแบบเอาต์พุต console.table() และสามารถปรับแต่งรูปแบบเอาต์พุตได้ด้วยฟังก์ชัน Converter แบบกำหนดเอง
  • เมื่อตั้งค่า retainSamples จะเก็บข้อมูลตัวอย่างดิบไว้ตามเดิม เพื่อนำไปใช้กับการวิเคราะห์แบบกำหนดเอง การสร้างกราฟแสดงผล หรือการส่งออกผลลัพธ์
  • เลือกใช้ timestamp provider ที่ให้ความละเอียดสูงได้
    • ค่าเริ่มต้นคือ performance.now()
    • รองรับตัวเลือกที่ปรับให้เหมาะกับแต่ละรันไทม์ เช่น hrtimeNow, bunNanoseconds, auto
    • สามารถสร้างอิมพลีเมนต์ TimestampProvider interface แบบกำหนดเองได้
  • รองรับ การควบคุมการยกเลิกด้วย AbortSignal
    • สามารถ ยกเลิกการรัน (abort) ได้ทั้งระดับเบนช์ทั้งหมดหรือระดับแทสก์เดี่ยว
    • เมื่อยกเลิกจะเกิดอีเวนต์ abort และตั้งค่าสถานะ (task.result.aborted)
  • โครงสร้างแบบแพ็กเกจเดียวโดยไม่พึ่งพาไลบรารีภายนอก ช่วยให้เริ่มต้นและรันได้รวดเร็ว
  • เมื่อเทียบกับ Benchmark.js, mitata, tatami-ng, Bema จุดเด่นคือ เล็กกว่า เรียบง่ายกว่า และเป็นมิตรกับ Web API มากกว่า

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

 
shakespeares 2025-12-11

ตอนนี้ก็แอบสงสัยเหมือนกันว่าของแบบนี้ยังจำเป็นอยู่ไหม เพราะ AI เขียนสคริปต์สำหรับวัด performance ให้เหมาะกับช่วงเวลานั้น ๆ ได้ดีมากอยู่แล้ว..