Tôi đang tìm cách viết một tiện ích Javascript chuẩn hoạt hình khung hình trên giây đơn giản. FPS có thể là một thuật ngữ mơ hồ ở đây, nhưng lý tưởng nhất là nó sẽ cho phép tôi so sánh và đo lường chính xác hơn mức độ hoạt động của các hoạt ảnh khác nhau (CSS3/canvas/webgl) trên các trình duyệt và thiết bị. (Vì vậy, nó không chỉ là thứ kiểm tra mã cụ thể - mà thư viện JS có trong trang có thể tự thực hiện công việc của nó)
và đang tìm kiếm ý tưởng về cách tốt nhất để tiếp cận chủ đề này.
Ví dụ: tôi hy vọng requestAnimationFrame là thứ tôi đang tìm kiếm - tôi đã đọc một chút về nó và có vẻ như nó được gọi mỗi khi trình duyệt có sẵn để vẽ lại/hoạt hình, phải không? Vì vậy, theo logic tương tự, nếu (trong khi chạy hoạt ảnh) trình duyệt không khả dụng (giống như nó thường chạy trống) - chúng tôi đã có một số con số ở đó để so sánh lại.
Tất nhiên, vấn đề là requestAnimationFrame không được hỗ trợ rộng rãi như tôi mong muốn (đặc biệt là trên thiết bị di động). Tôi có thể sử dụng setInterval ở đó không? Tôi biết nó không đáng tin cậy lắm, nhưng có lẽ nó sẽ tốt cho tôi - ví dụ: nếu tôi gọi nó là 1000 lần mỗi giây và sau đó so sánh nó với số lần thực thi thực tế mỗi giây - thì đó đã là một loại điểm chuẩn nào đó.
Vấn đề duy nhất ở đây là phương thức trả về số đo cho bất kỳ số vấn đề nào, không chỉ hoạt ảnh - ví dụ: tôi có thể tưởng tượng trình duyệt bỏ qua một khoảng trống khi nó thực hiện một số hành động trong DOM, v.v. Bạn có thể lập luận rằng trình duyệt là động vật xử lý đơn, vì vậy các thay đổi của DOM cũng ảnh hưởng đến hoạt ảnh - nhưng điều này có đúng không nếu, chẳng hạn, hoạt ảnh CSS3 được tăng tốc phần cứng GPU?
Hiện tại chỉ là lý thuyết - vì vậy mọi ý tưởng đều được đánh giá cao ;-)
Điều này có vẻ như sẽ dễ dàng thích ứng với một tập hợp các chức năng phù hợp với trường hợp cụ thể của bạn ("làm việc của riêng bạn"):https://Gist.github.com/1156092
Tôi là một lập trình viên xuất sắc, rất giỏi!