Đo lường hiệu suất bằng mô hình RAIL

RAIL là mô hình hiệu suất lấy người dùng làm trung tâm, cung cấp cấu trúc để suy nghĩ về hiệu suất. Mô hình này chia nhỏ trải nghiệm của người dùng thành các hành động chính (ví dụ: nhấn, cuộn, tải) và giúp bạn xác định mục tiêu hiệu suất cho từng hành động.

RAIL là viết tắt của 4 khía cạnh riêng biệt của vòng đời ứng dụng web: phản hồi, ảnh động, không hoạt động và tải. Người dùng có kỳ vọng khác nhau về hiệu suất đối với từng bối cảnh trong số này, vì vậy, các mục tiêu về hiệu suất được xác định dựa trên bối cảnh và nghiên cứu trải nghiệm người dùng về cách người dùng cảm nhận về độ trễ.

Bốn phần của mô hình hiệu suất RAIL: phản hồi, ảnh động, không hoạt động và tải.
4 phần trong mô hình hiệu suất RAIL

Tập trung vào người dùng

Lấy người dùng làm trung tâm của nỗ lực hiệu suất của bạn. Bảng dưới đây mô tả các chỉ số chính về cảm nhận của người dùng về độ trễ về hiệu suất:

Nhận thức của người dùng về độ trễ hiệu suất
0 đến 16 mili giây Người dùng đặc biệt thích theo dõi chuyển động và họ không thích điều đó khi ảnh động không mượt mà. Chúng nhận biết ảnh động mượt mà miễn là mỗi giây có 60 khung hình mới được kết xuất. Quá trình này mất 16 mili giây trên mỗi khung hình, bao gồm cả thời gian trình duyệt cần để vẽ khung mới lên màn hình, khiến ứng dụng còn lại khoảng 10 mili giây để tạo khung hình.
0 đến 100 mili giây Phản hồi hành động của người dùng trong khoảng thời gian này và người dùng cảm thấy rằng kết quả là có ngay lập tức. Còn nữa, việc kết nối giữa hành động và phản ứng sẽ bị ngắt.
100 đến 1000 mili giây Trong cửa sổ này, mọi thứ sẽ có cảm giác như một phần của tiến trình nhiệm vụ tự nhiên và liên tục. Đối với hầu hết người dùng trên web, việc tải trang hoặc thay đổi chế độ xem biểu thị một công việc.
1000 mili giây trở lên Sau 1000 mili giây (1 giây), người dùng sẽ mất tập trung vào việc họ đang thực hiện.
10000 mili giây trở lên Sau 10.000 mili giây (10 giây), người dùng cảm thấy khó chịu và có khả năng từ bỏ các nhiệm vụ. Họ có thể quay lại sau hoặc không.

Mục tiêu và nguyên tắc

Khi nói đến RAIL, các thuật ngữ mục tiêunguyên tắc có ý nghĩa cụ thể:

  • Mục tiêu. Các chỉ số hiệu suất chính liên quan đến trải nghiệm người dùng. Ví dụ: nhấn để vẽ trong chưa đầy 100 mili giây. Do nhận thức của con người tương đối không thay đổi, nên những mục tiêu này khó có thể thay đổi ngay.

  • Nguyên tắc. Các đề xuất giúp bạn đạt được mục tiêu. Những đề xuất này có thể dành riêng cho điều kiện kết nối mạng và phần cứng hiện tại, và do đó có thể thay đổi theo thời gian.

Phản hồi: xử lý sự kiện trong chưa đầy 50 mili giây

Mục tiêu: Hoàn tất quá trình chuyển đổi do hoạt động đầu vào của người dùng khởi tạo trong vòng 100 mili giây, để người dùng cảm thấy các tương tác diễn ra tức thì.

Nguyên tắc:

  • Để đảm bảo phản hồi hiển thị trong vòng 100 mili giây, hãy xử lý các sự kiện đầu vào của người dùng trong vòng 50 mili giây. Điều này áp dụng cho hầu hết các hoạt động đầu vào, chẳng hạn như thao tác nhấp vào nút, bật/tắt các thành phần điều khiển biểu mẫu hoặc ảnh động bắt đầu. Điều này không áp dụng cho thao tác kéo hoặc cuộn bằng cách chạm.

  • Mặc dù nghe có vẻ khác thường, nhưng đây không phải lúc nào cũng là lệnh gọi phù hợp để phản hồi ngay hoạt động đầu vào của người dùng. Bạn có thể sử dụng khoảng thời gian 100 mili giây này để thực hiện các tác vụ tốn kém khác, nhưng hãy cẩn thận để không chặn người dùng. Nếu có thể, hãy làm việc trong nền.

  • Đối với các thao tác mất hơn 50 mili giây để hoàn tất, hãy luôn đưa ra phản hồi.

50 mili giây hay 100 mili giây?

Mục tiêu là phản hồi dữ liệu đầu vào trong vòng dưới 100 mili giây, vậy tại sao ngân sách của chúng ta chỉ có 50 mili giây? Lý do là thường thì còn có công việc khác đang được thực hiện ngoài việc xử lý dữ liệu đầu vào, và công việc đó chiếm một phần thời gian có sẵn để phản hồi đầu vào được chấp nhận. Nếu một ứng dụng đang thực hiện công việc ở khoảng thời gian đề xuất là 50 mili giây trong thời gian không hoạt động, thì tức là dữ liệu đầu vào có thể được đưa vào hàng đợi tối đa 50 mili giây nếu hoạt động đó diễn ra tại một trong những đoạn đó. Do đó, bạn có thể giả định rằng hệ thống chỉ có thể sử dụng 50 mili giây còn lại để xử lý đầu vào thực tế. Hiệu ứng này được thể hiện trong sơ đồ bên dưới cho thấy cách dữ liệu đầu vào nhận được trong một tác vụ ở trạng thái rảnh được đưa vào hàng đợi, giúp giảm thời gian xử lý sẵn có:

Sơ đồ cho thấy cách dữ liệu đầu vào nhận được trong một tác vụ ở trạng thái rảnh được xếp hàng, giúp giảm thời gian xử lý đầu vào hiện có xuống còn 50 mili giây
Tác động của các nhiệm vụ ở trạng thái rảnh đối với ngân sách phản hồi đầu vào.

Ảnh động: tạo một khung hình trong 10 mili giây

Mục tiêu:

  • Tạo từng khung hình trong ảnh động trong vòng 10 mili giây. Về mặt kỹ thuật, ngân sách tối đa cho mỗi khung là 16 mili giây (1000 mili giây/60 khung hình/giây tương đương 16 mili giây), nhưng các trình duyệt cần khoảng 6 mili giây để hiển thị từng khung hình, do đó phải tuân theo nguyên tắc là 10 mili giây trên mỗi khung hình.

  • Hãy cố gắng đảm bảo hình ảnh mượt mà. Người dùng sẽ chú ý khi tốc độ khung hình thay đổi.

Nguyên tắc:

  • Ở các điểm áp lực cao như ảnh động, điều quan trọng là không làm gì cả khi bạn có thể và ở mức tối thiểu tuyệt đối khi bạn không thể. Bất cứ khi nào có thể, hãy sử dụng phản hồi 100 mili giây để tính toán trước công việc tốn kém nhằm tăng tối đa khả năng đạt được tốc độ 60 khung hình/giây.

  • Xem phần Hiệu suất hiển thị để biết các chiến lược tối ưu hoá ảnh động khác nhau.

  • Ảnh động trực quan, chẳng hạn như số lượt truy cập và số lượt thoát, số ở dạng tiền thiếu niên và chỉ báo đang tải.
  • Thao tác cuộn. Điều này bao gồm cử chỉ hất (tức là khi người dùng bắt đầu cuộn, sau đó thả tay ra và trang tiếp tục cuộn).
  • Tính năng kéo. Ảnh động thường theo các tương tác của người dùng, chẳng hạn như kéo bản đồ hoặc chụm để thu phóng.

Không hoạt động: tối đa hoá thời gian không hoạt động

Mục tiêu: Tối đa hoá thời gian không hoạt động để tăng khả năng trang phản hồi hoạt động đầu vào của người dùng trong vòng 50 mili giây.

Nguyên tắc:

  • Sử dụng thời gian không hoạt động để hoàn tất công việc bị trì hoãn. Ví dụ: đối với tải trang ban đầu, hãy tải ít dữ liệu nhất có thể, sau đó sử dụng thời gian không hoạt động để tải phần còn lại.

  • Thực hiện công việc trong thời gian không hoạt động trong vòng 50 mili giây. Nếu lâu hơn thì bạn có nguy cơ gây ảnh hưởng đến khả năng phản hồi hoạt động đầu vào của người dùng trong vòng 50 mili giây của ứng dụng.

  • Nếu người dùng tương tác với một trang trong khi làm việc trong thời gian không hoạt động, thì hoạt động tương tác của người dùng phải luôn có mức độ ưu tiên cao nhất và làm gián đoạn công việc trong thời gian không hoạt động.

Tải: phân phối nội dung và tương tác trong chưa đầy 5 giây

Khi các trang tải chậm, sự chú ý của người dùng sẽ mất đi và người dùng sẽ nhận thấy nhiệm vụ đã bị hỏng. Các trang web tải nhanh sẽ có phiên trung bình dài hơn, tỷ lệ thoát thấp hơn và khả năng xem quảng cáo cao hơn.

Mục tiêu:

Nguyên tắc:

Công cụ đo lường RAIL

Có một số công cụ giúp bạn tự động hoá việc đo lường RAIL. Phương thức bạn sử dụng phụ thuộc vào loại thông tin bạn cần và loại quy trình làm việc mà bạn ưu tiên.

Công cụ của Chrome cho nhà phát triển

Công cụ của Chrome cho nhà phát triển cung cấp bản phân tích chuyên sâu về mọi thứ xảy ra khi trang của bạn tải hoặc chạy. Hãy xem bài viết Bắt đầu phân tích hiệu suất trong thời gian chạy để làm quen với giao diện người dùng của bảng điều khiển Hiệu suất.

Các tính năng sau đây của Công cụ cho nhà phát triển có liên quan đặc biệt đến:

Ngọn hải đăng

Lighthouse có trong Công cụ của Chrome cho nhà phát triển, tại PageSpeed Insights, dưới dạng một Phần mở rộng của Chrome, dưới dạng một mô-đun Node.js và trong WebPageTest. Bạn cung cấp cho trang một URL, công cụ này mô phỏng một thiết bị tầm trung có kết nối 3G chậm, chạy một loạt bài kiểm tra trên trang rồi cung cấp cho bạn báo cáo về hiệu suất tải cũng như đề xuất về cách cải thiện.

Các hoạt động kiểm tra sau đây đặc biệt phù hợp:

Đáp

Tải

WebPageTest

WebPageTest là một công cụ về hiệu suất web sử dụng trình duyệt thực để truy cập vào các trang web và thu thập chỉ số thời gian. Nhập URL tại trang Websitetest.org/easy để nhận báo cáo chi tiết về hiệu suất tải của trang trên thiết bị Moto G4 thực tế có kết nối 3G chậm. Bạn cũng có thể định cấu hình để đưa vào hoạt động kiểm tra Lighthouse.

Tóm tắt

RAIL là một thấu kính giúp xem xét trải nghiệm người dùng trên trang web dưới dạng một hành trình bao gồm các hoạt động tương tác riêng biệt. Hiểu cảm nhận của người dùng về trang web của bạn để đặt mục tiêu hiệu suất có tác động lớn nhất đến trải nghiệm người dùng.

  • Tập trung vào người dùng.

  • Phản hồi hoạt động đầu vào của người dùng trong vòng 100 mili giây.

  • Tạo khung hình trong vòng chưa đầy 10 mili giây khi tạo ảnh động hoặc cuộn.

  • Tối đa hoá thời gian ở trạng thái rảnh của luồng chính.

  • Tải nội dung tương tác trong chưa đầy 5000 mili giây.