โปรแกรมคำนวณ Frame Time

FPS ↔ มิลลิวินาที

แปลง FPS เป็นมิลลิวินาที

พิมพ์ตัวเลขในช่องใดก็ได้ ระบบจะคำนวณอีกช่องให้อัตโนมัติ Frame time คือเวลาที่มีสำหรับประมวลผลหนึ่งเฟรม และเป็นหน่วยหลักที่ทุกคนใช้แก้ปัญหาเรื่อง Performance

  • คำนวณสองทางแบบเรียลไทม์
  • กดเลือกเฟรมเรตยอดนิยมได้ทันที
  • ตารางเทียบค่าครบถึง 480 FPS
  • ไม่ต้องสมัครสมาชิก
เฟรมเรตที่พบบ่อย

ที่ 60 FPS แต่ละเฟรมจะมีเวลาแสดงผล 16.67 ms หากประมวลผลเกินเวลานี้ เฟรมจะมาช้ากว่ากำหนด

สูตรคำนวณคือ 1000 หารด้วยอัตราเฟรมเรต ประโยชน์ของหน้านี้ไม่ได้อยู่ที่การคำนวณตัวเลข แต่อยู่ที่การรวบรวมเฟรมเรตยอดนิยมมาเปรียบเทียบให้เห็นชัดเจน

การนำไปใช้งาน

เครื่องมือนี้ใช้ทำอะไรได้บ้าง?

  1. 1

    กำหนดงบเวลาต่อเฟรม (Budget)

    ใส่อัตราเฟรมเรตเป้าหมาย เวลาในหน่วยมิลลิวินาทีที่ได้คือเวลาสูงสุดที่ทุกกระบวนการ ทั้ง logic, drawing และ compositing ต้องทำงานให้เสร็จทัน

  2. 2

    ประเมินผลกระทบของการเปลี่ยนแปลง

    หากฟีเจอร์ใหม่ทำให้กินเวลาเพิ่มขึ้น 3 ms ต่อเฟรม ให้ใส่ frame time ปัจจุบันที่ช่องขวา บวกเพิ่ม 3 แล้วดูเฟรมเรตใหม่ที่ได้ทางช่องซ้าย

  3. 3

    ตรวจสอบผลทดสอบ (Benchmark)

    เครื่องมือที่รายงานผล 6.94 ms หมายถึง 144 FPS การแปลงค่าสลับไปมาเป็นวิธีที่เร็วที่สุดในการเช็กว่าผลจากเครื่องมือสองตัวตรงกันหรือไม่

ตารางอ้างอิง

ตารางเทียบค่า FPS เป็น Frame Time

รวมทุกอัตราเฟรมเรตที่คุณต้องใช้ พร้อมคอลัมน์งบเวลาครึ่งเฟรมที่นิยมใช้เป็นเป้าหมายในการพัฒนา

อัตราเฟรมต่อวินาทีแปลงเป็น Frame time ในหน่วยมิลลิวินาที
อัตราเฟรม Frame Time ระยะเวลาครึ่งเฟรม
15 FPS 66.67 ms 33.33 ms
24 FPS 41.67 ms 20.83 ms
25 FPS 40.00 ms 20.00 ms
30 FPS 33.33 ms 16.67 ms
45 FPS 22.22 ms 11.11 ms
48 FPS 20.83 ms 10.42 ms
50 FPS 20.00 ms 10.00 ms
60 FPS 16.67 ms 8.33 ms
72 FPS 13.89 ms 6.94 ms
75 FPS 13.33 ms 6.67 ms
90 FPS 11.11 ms 5.56 ms
100 FPS 10.00 ms 5.00 ms
120 FPS 8.33 ms 4.17 ms
144 FPS 6.94 ms 3.47 ms
165 FPS 6.06 ms 3.03 ms
180 FPS 5.56 ms 2.78 ms
200 FPS 5.00 ms 2.50 ms
240 FPS 4.17 ms 2.08 ms
280 FPS 3.57 ms 1.79 ms
300 FPS 3.33 ms 1.67 ms
360 FPS 2.78 ms 1.39 ms
480 FPS 2.08 ms 1.04 ms

วิธีแปลง FPS เป็นมิลลิวินาทีทำอย่างไร?

นำ 1000 ไปหารด้วยอัตราเฟรมเรต เนื่องจาก 1 วินาทีมี 1000 มิลลิวินาที ดังนั้น 60 FPS จะได้ 1000 ÷ 60 = 16.67 ms ต่อหนึ่งเฟรม หากต้องการแปลงกลับ ให้ใช้ 1000 หารด้วย frame time

FPS → มิลลิวินาที

1000 ÷ fps = ms ดังนั้น 120 FPS คือ 8.33 ms

มิลลิวินาที → FPS

1000 ÷ ms = fps ดังนั้น 11.1 ms คือ 90 FPS

ทำไมถึงควรคำนวณด้วย Frame Time แทน FPS?

เพราะมิลลิวินาทีสามารถบวกกันได้โดยตรง แต่อัตราเฟรมเรตทำไม่ได้ ฉากที่ใช้เวลา 8 ms รวมกับเอฟเฟกต์ 4 ms จะได้ 12 ms ตรงๆ แต่ถ้าคำนวณเป็น FPS จะซับซ้อนกว่ามาก นอกจากนี้ยังช่วยให้เห็นผลลัพธ์ที่ได้ลดลงเรื่อยๆ ชัดเจน เช่น การเพิ่มจาก 30 → 60 ช่วยประหยัดเวลาได้ 16.7 ms ต่อเฟรม แต่ 120 → 240 ประหยัดได้เพียง 4.2 ms แม้จะเพิ่มขึ้นเท่าตัวเหมือนกัน แต่เวลาจริงที่ประหยัดได้ต่างกันถึง 4 เท่า

กฎ Half-frame (ครึ่งเฟรม) คืออะไร?

คอลัมน์ที่สามในตารางคือเวลาครึ่งหนึ่งของ frame time ซึ่งเป็นเป้าหมายจริงที่หลายคนใช้กำหนดงบเวลา เพราะโค้ดของคุณไม่ใช่สิ่งเดียวที่ทำงานในหนึ่งเฟรม เบราว์เซอร์ยังต้องทำ layout และ paint ส่วน compositor ต้องรวมเลเยอร์ และไดรเวอร์ต้องส่งข้อมูลไปแสดงผลที่หน้าจอ

ที่ 60 FPS คุณมีเวลา 16.67 ms หากจัดสรรเวลาให้งานของคุณเองประมาณ 8 ms คุณจะรักษาความเร็ว 60 FPS ได้อย่างสบายๆ แต่หากใช้เวลาเต็ม 16 ms เฟรมจะตกทันทีที่มีอะไรล่าช้าเกินคาด

Frame Time กับ Latency เหมือนกันหรือไม่?

ไม่เหมือนกัน Frame time คือระยะเวลาที่ใช้ในการสร้าง 1 เฟรม ส่วน Latency คือเวลาตั้งแต่ที่คุณกดสั่งการจนกระทั่งผลลัพธ์ปรากฏบนหน้าจอ ซึ่งรวมถึงอุปกรณ์ป้อนข้อมูล เฟรมที่รอในคิว การประมวลผลของจอภาพ และการเปลี่ยนสีของพิกเซล เกมที่ทำเวลาได้ 8.33 ms อย่างสมบูรณ์แบบ ก็อาจมี Latency รวมสูงถึง 60 ms ได้

เราสามารถหาค่าเฉลี่ยของเฟรมเรตได้หรือไม่?

ไม่ได้ และการทำเช่นนั้นจะทำให้ตัวเลขดูดีเกินจริง 10 เฟรมที่ 100 FPS รวมกับ 10 เฟรมที่ 20 FPS ไม่เท่ากับ 60 FPS แต่ใช้เวลาจริง 600 ms สำหรับ 20 เฟรม ซึ่งคิดเป็น 33 FPS เท่านั้น วิธีที่ถูกต้องคือให้หาค่าเฉลี่ยของ frame time ก่อน แล้วค่อยแปลงเป็น FPS ทีหลัง นี่คือข้อผิดพลาดที่พบบ่อยที่สุดในการทดสอบ Benchmark เอง

FAQ

คำถามที่พบบ่อย

60 FPS มีค่า Frame time เท่ากับกี่ ms?

16.67 ms ส่วนที่ 30 FPS คือ 33.33 ms, ที่ 120 FPS คือ 8.33 ms และที่ 144 FPS คือ 6.94 ms

Frame time ที่ดีควรอยู่ที่เท่าไร?

ควรเท่ากับหรือน้อยกว่าช่วงเวลา Refresh Rate ของหน้าจอ และมีความเสถียรต่อเนื่อง สำหรับจอ 60 Hz คือ 16.67 ms และสำหรับจอ 144 Hz คือ 6.94 ms

ทำไมนักพัฒนาถึงนิยมใช้ Frame Time แทน FPS?

เพราะสามารถนำตัวเลขมาบวกกันได้โดยตรง เวลาที่แต่ละส่วนใช้สามารถรวมกันในหน่วยมิลลิวินาที และทำให้เห็นความคุ้มค่าที่ลดลงเมื่อเฟรมเรตสูงขึ้นได้อย่างชัดเจน

ค่า 1% Low ในหน่วยมิลลิวินาทีคืออะไร?

เป็นหลักการเดียวกันแต่ดูจากฝั่งที่ช้าที่สุด โดยนำเฟรมที่ช้าที่สุด 1% มาหาค่าเฉลี่ยเวลา หากได้ค่า 1% low อยู่ที่ 33 ms หมายความว่าช่วงที่เฟรมตกหนักที่สุดเทียบเท่ากับความเร็ว 30 FPS

เครื่องคำนวณนี้ใช้งานแบบออฟไลน์ได้หรือไม่?

เมื่อโหลดหน้าเว็บเสร็จแล้วสามารถใช้งานได้ทันที และตารางอ้างอิงเป็นโค้ด HTML จึงเปิดดูได้ตามปกติแม้ปิดการทำงานของ JavaScript

เพิ่มเติม

เครื่องมือทั้งหมดทำงานบนเบราว์เซอร์ ใช้งานฟรี ไม่ต้องลงทะเบียน

แปลงค่าเฟรมเรต

พิมพ์ตัวเลขเฟรมเรต ดูค่ามิลลิวินาที และใช้ตารางอ้างอิงสำหรับค่าที่ต้องใช้งานเป็นประจำ

เริ่มใช้งานเครื่องคำนวณ