Measure Performance with the RAIL Model

Đây là bài trong chuỗi bài ngâm cứu về hiệu năng ứng dụng web

RAIL (Response, Animation, Idle, and Load) là một mô hình hiệu suất lấy người dùng làm trọng tâm, nó chia nhỏ trải nghiệm của người dùng thành các hoạt động chính. Các mục tiêu và hướng dẫn của RAIL nhằm mục đích giúp các lập trình viên và designer đảm bảo một trải nghiệm người dùng tốt. Bỡi đặt ra một cấu trúc cho việc suy nghĩ về hiệu năng, RAIL cho phép các designer và các lập trình viên chắc chắn hướng đến công việc có tác động cao nhất trên trải nghiệm người dùng.

Mỗi web app có bốn khía cạnh rõ ràng trong vòng đời của nó và hiệu năng phân bổ vào từng khía cạnh theo các cách khác nhau: 4 part of RAIL performance model

Goals and guidelines

Focus on the user

Làm người dùng trở thành tâm điểm của nỗ lực hiệu năng của bạn. Bảng sau mô tả thang đo chính về nhận thức của người dùng vè performance delay:

User Perception Of Performance Delays
0 to 16ms Người dùng nhạy cảm trong việc theo dõi chuyển động và không thích animation không mượt. Sẽ là mượt nếu 60 khung hình mới được render mỗi giây. 16ms/frame, kể cả thời gian cho trình duyệt vẽ frame lên màn hình, giành cho app khoản 10ms để tạo một frame
0 to 100ms Phản hồi tương tác người dùng trong khoảng thời gian này, người dùng cảm thấy kết quả là tức thì
100 to 300ms Một chút chậm
300 to 1000ms Cảm giác như là tự nhiên và đang thực thi các task.
1000ms or more Người dùng không tập trung vào việc họ đang làm trên web
10000ms or more Người dùng bế tắc và muốn từ bỏ, có thể không muốn quay lại web này nữa

Người dùng có vẻ kiên nhẫn hơn khi dùng mobile so với máy tính.

Response: process events in under 50ms

Goal: Hoàn tất công việc liên quan đến việc nhập dữ liệu của người dùng trong 100ms. Guidelines:

50ms hay 100ms? Goal là dưới 100ms, vậy sao budget chỉ là 50ms? Vì thường có nhiều công việc khác đang được xử lý ngoài việc xử lý input và công việc đó chiếm một phần thời gian có sẵn để đáp ứng input có thể chấp nhận được. Nếu một ứng dụng đang thực hiện công việc trong các khoảng thời gian 50ms trong lúc idle, điều đó có nghĩa là input có thể vào hàng đợi và đợi tối đa đến 50ms nếu nó xảy ra trong quá trình thực hiện một chunk của công việc. Giải quyết điều này, sẽ là an toàn để giả định rằng chỉ có 50ms còn lại để xử lý input trong thực tế.

How idle tasks affect input response budget.

Animation: produce a frame in 10ms

Goals:

Guidelines:

Idle: maximize idle time

Goal: Tối đa idle time để tăng cơ hội để trang phản hồi input người dùng trong 50ms. Guidelines:

Load: deliver content and become interactive in under 5 seconds

Goals:

Guidelines:

Tools for measuring RAIL

REF