Bảng đổi nhanh 1ms ↔ FPS | Tra 60 / 120 / 144 từ mili giây (cheat sheet)

(Cập nhật: 19 tháng 7, 2026 ) 1ms FPS frame time bảng tra 60fps 120fps cheat sheet
Kết luận

Bookmark bảng này khi Profiler / ticket chỉ ghi mili giây. Công thức: FPS = 1000 ÷ ms, ms = 1000 ÷ FPS. Ba cặp phải nhớ: 60 ↔ 16.67ms, 120 ↔ 8.33ms, 30 ↔ 33.33ms. Cần đổi số lẻ (11.2ms, 22ms…) → mở máy tính FPS. Muốn hiểu ngân sách Unity / hitch → đọc 1 frame bao nhiêu ms?.

Khi QA gửi “Update ~12ms, thỉnh thoảng 20ms” hoặc Discord hỏi “1ms là bao nhiêu FPS?”, bạn không cần mở Excel. Bài máy tính 30fps to ms hướng dẫn workflow đổi số; bài ngân sách 1 frame giải thích tại sao vượt budget gây hitch. Bài này chỉ làm một việc: bảng tra cứu nhanh 1ms ↔ FPS để pin tab hoặc in A4 cạnh màn hình.

Ai nên giữ bài này

  • Học Unity / Godot / web game lần đầu đọc Profiler
  • Frontend tune requestAnimationFrame / CSS motion nặng
  • Freelance nhận brief “giữ 60FPS trên mid-range” từ studio outsourcing VN
  • Ai đã biết công thức nhưng hay quên số lẻ lúc họp

Công thức hai chiều (nhớ 10 giây)

ms/frame  = 1000 ÷ FPS
FPS       = 1000 ÷ ms
giây      = số_frame ÷ FPS
số_frame  = giây × FPS

Ví dụ nhanh:

Bạn thấyPhép tínhKết luận
Target 601000 ÷ 60Budget 16.67ms
Target 1201000 ÷ 120Budget 8.33ms
Đo được 1ms1000 ÷ 1~1000FPS lý thuyết (chỉ là headroom, không phải target)
Đo được 20ms1000 ÷ 20Trần ~50FPS nếu mọi frame = 20ms

Lưu ý: FPS lý thuyết từ một spike ms không bằng FPS trung bình của game. Bảng dùng để ước lượng và so với budget ship.


Bảng A — FPS mục tiêu → ms (tra xuôi)

FPS ship → ngân sách 1 frame
FPS ms/frame Ghi nhớ nhanh
24 41.67 Nhịp phim — ít dùng làm target game
30 33.33 Mobile tiết kiệm pin / fallback
48 20.83 Đôi khi cinema + interactive
60 16.67 Chuẩn PC / web / nhiều mobile
72 13.89 Một số headset / panel
90 11.11 VR phổ biến
120 8.33 ProMotion / competitive
144 6.94 Màn gaming 144Hz
165 6.06 Panel cao tần
240 4.17 Esports — ngân sách cực chặt

Ba số dùng hàng ngày ở lab VN: 33.33 / 16.67 / 8.33. Ghi chúng lên sticky note trước khi học VSync và deltaTime.


Bảng B — ms đo được → FPS (tra ngược, góc 1ms)

Đây là phần bổ sung hai bài kia: khi log chỉ có mili giây.

ms trên Profiler → FPS lý thuyết
ms/frame FPS = 1000÷ms Đọc nhanh so với 60/120
1 1000 Rất nhẹ — còn gần hết budget 60/120
2 500 Vẫn headroom lớn ở 60
4 250 ~24% budget 60; ~48% budget 120
5 200 ~30% của 16.67ms
6.94 144 Khớp màn 144Hz
8 125 Sát budget 120 (8.33)
8.33 120 Đúng target 120FPS
10 100 Ổn với 60; vượt 90/120
11.11 90 Target VR 90
12 ~83 Còn ~4.7ms headroom ở 60
14 ~71 Sát 60 — ít room cho spike
16.67 60 Đúng target 60FPS
20 50 Drop dưới 60 nếu ổn định 20ms
22 ~45 Hitch rõ trên title 60FPS
33.33 30 Đúng target 30FPS
41.67 24 Dưới 30 — cảm giác chậm

Cách dùng trong họp: “Spike 22ms” → nhìn bảng → “~45FPS nếu kéo dài” → so với target 60 → ticket hợp lệ. Không cần tranh luận “22ms có tệ không?” nếu chưa biết budget.

Số lẻ (7.2, 13.5, 18.1) → Tính FPS & Frame Time, nhập ô frame time, đọc FPS cần thiết ngay. Tool chạy trên trình duyệt, không đăng ký — phù hợp máy lab trường / quán net chỉ có Chrome.


Bảng C — % ngân sách ở 60 và 120

Khi chia budget giữa AI / UI / render, % hữu ích hơn số tuyệt đối.

Công việc (ms)% của 16.67 (60FPS)% của 8.33 (120FPS)
1~6%~12%
2~12%~24%
4~24%~48%
5~30%~60%
8~48%~96% (gần hết khung 120)
10~60%vượt
16~96%vượt nặng

Quy tắc thực dụng: đừng thiết kế sát 100% khung. Spike GC, I/O, hoặc layout UI một frame là đủ để vượt — đặc biệt khi test trên điện thoại Android tầm trung phổ biến ở playtest VN.


Bảng D — frame ↔ giây (hay hỏi kèm)

Câu hỏiCông thứcVí dụ
Bao nhiêu giây?frame ÷ FPS90 frame @ 60 = 1.5s
Bao nhiêu frame?giây × FPS0.25s @ 120 = 30 frame
Hit-stop 3 frame @ 603 ÷ 600.05s
Fade 200ms @ 600.2 × 6012 frame

Timeline Unity / After Effects / CSS hay trộn đơn vị. Ghi rõ FPS giả định khi chuyển — 12 frame @ 30 ≠ 12 frame @ 60.


Case 1: Ticket chỉ ghi “1ms”

Bối cảnh: Dev mới optimize một hàm, PR note: “giảm từ 4ms xuống 1ms”. Producer hỏi có ship 120 được không.

Đọc bảng:

  1. 1ms @ target 60 ≈ 6% budget — tốt, nhưng một hàm không đại diện cả frame.
  2. 1ms @ target 120 ≈ 12% — vẫn ổn nếu các hệ khác không vượt.
  3. Cần Profiler full frame trên máy mục tiêu, không chỉ micro-benchmark empty scene.

Kết luận cho junior: cải thiện 1ms đáng khen, nhưng ship FPS phụ thuộc tổng ms/frame + refresh panel, không phụ thuộc một số trong PR.


Case 2: QA báo 12ms ổn định, thỉnh thoảng 20ms

Indie 2D, target 60 trên máy mid-range.

ĐoSo budget 16.67Ý nghĩa
12ms ổn địnhCòn ~4.7msĐạt 60 với headroom vừa
Spike 20msVượt → ~50FPS khung đóNgười chơi thấy giật ngắn

Việc làm: tìm nguyên nhân spike (spawn, GC, UI rebuild), không hạ target xuống 30 trừ khi product chấp nhận. Tra ngược nhanh bằng bảng B hoặc máy tính FPS.


Phân biệt với hai bài liên quan (tránh đọc nhầm)

Ba bài FPS trên Kawa — chọn đúng tab
Bài Góc chính Mở khi nào
Bài này (1ms ↔ FPS) Bảng tra cứu ms↔FPS, % budget Có số ms / cần cheat sheet
[FPS calculator / 30fps to ms](/vi/blog/fps-calculator-30fps-to-ms/) Workflow đổi số trên tool Cần nhập số tùy ý, preset Hz
[1 frame bao nhiêu ms?](/vi/blog/1-frame-ms-60fps-120fps/) Ngân sách, Unity, VSync, hitch Hiểu *vì sao* và checklist ship

Cả ba đều trỏ cùng tool: /vi/tools/fps-calculator/. Không cần cài app.


Checklist 15 giây trước khi trả lời ticket

  • Biết target ship (30 / 60 / 90 / 120) — chưa biết thì hỏi lại
  • Đổi ms → FPS lý thuyết bằng bảng B hoặc tool
  • So với budget: 33.33 / 16.67 / 8.33
  • Phân biệt một hệ thống vs cả frame
  • Spike đơn lẻ ≠ FPS trung bình session
  • Panel 60Hz không “hiện” thêm frame dù engine báo 200FPS

Câu hỏi thường gặp

1ms có phải lúc nào cũng tốt?
Trong micro-benchmark: có. Trong full frame: chỉ tốt nếu tổng các hệ vẫn dưới budget. 1ms AI + 14ms UI vẫn có thể drop ở 60.

Tại sao 1000 ÷ 60 ra 16.666… chứ không tròn?
Vì 1000 không chia hết cho 60. Design dùng 16.67ms; sync audio sample rate (44100) là bài khác — đừng giả định frame math = DSP.

Màn 60Hz mà game 120FPS nội bộ thì sao?
Mắt trên panel 60Hz không thấy 120 frame riêng biệt. Vẫn hữu ích giảm input latency trong một số stack, nhưng đừng bán “120Hz visual” trên panel 60.

CSS transition: 300ms đổi sang frame thế nào?
Ở 60FPS: 0.3 × 60 = 18 frame. Ở 120: 36 frame. Cùng 300ms, số frame khác nhau theo refresh.


Liên kết liên quan