Firefox đã nhanh hơn cho người dùng thực tế trong năm 2023
(hacks.mozilla.org)- Sau các đợt tối ưu hóa trong năm 2023, Firefox không chỉ cải thiện trên benchmark mà còn cho thấy tiến bộ về tải trang, độ phản hồi khi nhập liệu và thời gian thực thi JavaScript trong telemetry từ người dùng thực tế
- Mozilla đang thúc đẩy Speedometer 3 cùng các trình duyệt khác để tạo ra bài kiểm tra phản ánh tốt hơn hiệu năng mà người dùng cảm nhận trên các trang web thực tế
- Thời gian từ lúc nhận byte đầu tiên đến First Contentful Paint đã giảm từ khoảng 250ms đầu năm xuống 215ms vào tháng 10, giúp phản hồi tải gần như nhanh hơn 15%
- Phân vị 95 của thời gian thực thi JavaScript trong lúc tải trang đã giảm 300ms, từ khoảng 1560ms xuống khoảng 1260ms, và việc tối ưu SpiderMonkey có liên quan đến cải thiện này
- Sau các bản phát hành Firefox 116 và 117, độ trễ gõ phím chậm cũng giảm từ khoảng 65ms xuống dưới 59ms, cho thấy mức cải thiện 10% giúp giảm hiện tượng khựng khi gõ
Vì sao khó đo hiệu năng thực tế của người dùng
- Firefox là phần mềm máy khách phức tạp có chạy mã của bên thứ ba, nên rất khó đánh giá thay đổi trong trải nghiệm thực tế của người dùng chỉ bằng các chỉ số phòng thí nghiệm được kiểm soát
- Để xem hiệu năng trình duyệt, cần các chỉ số thời gian đã được ẩn danh như tải trang, độ phản hồi và thời gian khởi động
- Vì phải xử lý dữ liệu trong khi vẫn duy trì tiêu chuẩn bảo vệ quyền riêng tư, việc phân tích có những ràng buộc nhất định
- Do phụ thuộc vào các chỉ số tổng hợp, không có khả năng chỉ ra chính xác dữ liệu của một website cụ thể
- Việc rút ra kết luận có thể hành động từ dữ liệu đã thu thập cũng không hề dễ dàng
- Speedometer 3 là nỗ lực tạo ra bài kiểm tra hiệu năng mô phỏng trải nghiệm người dùng thực tế, giúp các trình duyệt thúc đẩy cải tiến dựa trên người dùng thật và trang web thật
Cải thiện tải trang và thời gian thực thi JavaScript
- Với cảm nhận về hiệu năng tải trang, First Contentful Paint là chỉ số phù hợp hơn so với sự kiện
onload - Tiêu chí đo là thời gian từ lúc nhận byte đầu tiên từ mạng cho đến FCP
- Giá trị này cho thấy người dùng nhận được phản hồi rằng trang đang tải thành công nhanh đến mức nào
- Bản thân trang web cũng ảnh hưởng lớn, nhưng nếu hiệu năng tổng thể của trình duyệt tốt hơn thì con số này có thể giảm xuống
- Thời gian liên quan đến FCP đã giảm từ khoảng 250ms đầu năm xuống 215ms vào tháng 10
- Tốc độ người dùng nhận được phản hồi tải trang gần như nhanh hơn 15% so với đầu năm
- Cải thiện này đến từ các công việc tối ưu hóa không trực tiếp nhắm vào tải trang
- Thời gian thực thi mã JavaScript trong lúc tải trang được so sánh theo phân vị 95
- Chỉ số này cho thấy còn dư địa giảm ma sát cho người dùng trên các trang nhiều JavaScript
- Đã giảm từ khoảng 1560ms đầu năm xuống khoảng 1260ms vào tháng 10
- Mức giảm 300ms, gần 20% cải thiện, có khả năng liên quan đến phần đáng kể của việc giảm thời gian FCP
- Engine JavaScript SpiderMonkey đã nhận được nhiều tối ưu hóa đáng kể thông qua công việc với Speedometer 3, dẫn đến cải thiện thời gian thực thi JavaScript
Những thay đổi quan sát được về độ phản hồi khi nhập liệu
- Độ phản hồi sau khi tải trang được đo bằng “keypress present latency”
- Đây là thời gian từ lúc nhấn phím trên bàn phím cho đến khi kết quả của thao tác đó được hiển thị trên màn hình
- Trang web có thể chạy JavaScript trên main thread để xử lý sự kiện keypress, nên có nhiều công việc tham gia hơn so với việc chỉ render văn bản đơn thuần
- Phần lớn thao tác gõ là nhanh và chủ yếu bị giới hạn bởi phần cứng như tần số quét màn hình, nhưng các trường hợp nhập liệu chậm lại gây cản trở đáng kể cho trải nghiệm sử dụng
- Vì việc giảm nhẹ các trường hợp tệ nhất là quan trọng, chỉ số này cũng được xem theo phân vị 95
- Phân vị 95 của keypress present latency phần lớn trong năm ở mức khoảng 65ms, rồi giảm xuống dưới 59ms sau các bản phát hành Firefox 116 và 117 vào tháng 8
- Các trường hợp gõ phím chậm nhất đã được cải thiện khoảng 10%
- Người dùng sẽ cảm nhận phản hồi tức thì hơn và ít bị gián đoạn hơn khi gõ
- Những cải thiện trong telemetry cho thấy các nỗ lực hiệu năng trong năm 2023 thực sự đã mang lại tác động tích cực cho người dùng Firefox, đồng thời vẫn còn chỗ cho các tối ưu hóa tiếp theo
1 bình luận
Các ý kiến trên Hacker News
Gần đây có thể cảm nhận một cách chủ quan rằng Firefox phản hồi nhanh hơn, và những cải tiến này thật sự đáng cảm ơn và khiến tôi hài lòng
Tuy nhiên tôi vẫn hơi lấn cấn với phương pháp đo lường có mức ẩn danh hóa mạnh. Có thể là do bản thân web đã nhanh hơn, hoặc mọi người đã dùng phần cứng tốt hơn chăng?
Nếu các trang có nhiều người truy cập được tối ưu hơn và triển khai phiên bản nhẹ hơn, thì trên dữ liệu telemetry, trung bình mọi thứ có thể trông như nhanh hơn một chút. Việc thay phần cứng, cập nhật hệ điều hành và driver cũng có thể tương tự
Trong lịch sử, phần mềm hành xử như chất khí: lấp đầy không gian và ngốn tài nguyên, mà những tài nguyên đó thường không thuộc về người viết phần mềm
Không phải phần mềm đang ăn cả thế giới, mà nó đang ăn tài nguyên máy tính và băng thông mà ta trả tiền hằng tháng
Trước khi đọc bài này tôi không nhận ra, nhưng gần đây cảm giác đó dường như đã biến mất, và tôi cũng đã ngừng nghĩ đến việc chuyển đổi
Nhưng dữ liệu trong bài này cho thấy những thay đổi hiệu năng theo từng bậc rõ rệt, khớp với việc phát hành các phiên bản trình duyệt. Sẽ không trung thực nếu không ghi nhận nỗ lực cải thiện hiệu năng của đội Firefox
Thật vui khi thấy Mozilla thực sự cải thiện Firefox thay vì chỉ di chuyển qua lại các thành phần UI
Là người dùng lâu năm, tôi muốn cổ vũ bên yếu thế để duy trì dù chỉ một chút cán cân quyền lực của web. Việc Mozilla tập trung vào công nghệ hơn chính trị là điều tốt, và dù sao Firefox cũng là phần mềm tốt nên tôi không có phàn nàn lớn
Ví dụ FirefoxOS có vẻ là một thất bại, nhưng vốn dĩ phần lớn các thử thách lớn đều thất bại. Nếu quá dè sẻn với những nỗ lực dài hạn như vậy, rồi sẽ muộn màng nhận ra tình cảnh như Microsoft: trong giới trẻ ngày nay có người còn không có laptop, và điện thoại thì đương nhiên không chạy Windows. Tôi nghĩ có thêm những dự án như FirefoxOS cũng ổn
Nếu chỉ nói là tập trung vào công nghệ, họ cũng có thể dồn toàn bộ nguồn lực vào Firefox OS
Sau khi nâng cấp lên 118, cứ vài ngày Firefox lại bị treo ngẫu nhiên. Không phải vấn đề CPU hay swap, nhưng mọi cửa sổ đều đóng băng và cần
killall firefox; dù vậy Firefox vẫn thoát khá sạch sẽVì spam trên công cụ tìm kiếm nên cũng khó tìm thông tin liên quan, và trước bản 118 thì nhiều năm liền vẫn ổn. Nó xảy ra quá hiếm nên cũng khó làm các thử nghiệm tái hiện như tắt extension hay tạo profile mới, có lẽ đành chịu vậy
Nếu trình báo cáo sự cố đang bật, bạn có thể gửi
SIGABRTtới tiến trình cha; sau khi khởi động lại, sẽ có mục trongabout:crashesđể bạn gửi lênNếu đang dùng Firefox của bản phân phối và có
gdbcùngdebuginfod, bạn có thể gắngdbvào tiến trình cha của Firefox, lấy symbol rồi chạythread all apply btđể dump stack của tất cả thread trong tiến trình chaNếu đang dùng bản build của Mozilla, có thể dùng https://firefox-source-docs.mozilla.org/toolkit/crashreporte... để tích hợp với symbol server riêng. Tùy bản phân phối, cách này có thể dùng được hoặc không với Firefox của bản phân phối
Khi có thông tin sự cố, bạn có thể đăng lên bug tracker của bản phân phối hoặc https://bugzilla.mozilla.org/enter_bug.cgi?product=Core kèm stack, phiên bản Firefox, báo cáo sự cố,
about:supportvà các thông tin liên quanTrên Linux, các tình trạng treo kiểu này thường là lỗi giữa Firefox và môi trường desktop, hoặc vấn đề driver đồ họa; nếu có stack thì có thể thu hẹp nguyên nhân rất nhiều. Đôi khi chỉ cần cập nhật gói hoặc đổi một thiết lập là giải quyết được
Các phàn nàn về độ bất ổn của Firefox thấy trên HN nhìn chung dường như đến từ người dùng Windows, hoặc người dùng Linux cài bản mới nhất ngoài hệ thống đóng gói của bản phân phối. Ngược lại, tôi dùng Firefox trên Debian stable nhiều năm và chưa từng gặp các lỗi được mô tả trong những thread như thế này
Để tái hiện có lẽ cần thử dùng binary Mozilla nguyên bản
Tin tốt, và khiến tôi muốn dùng thử lại
Tôi đã dùng gần 20 năm, từ thời Phoenix/Firebird với kiểu cài đặt “giải nén vào đâu đó”, nhưng đã chuyển sang trình duyệt dựa trên Chromium vì khác biệt tốc độ cảm nhận được
Tôi không chạy benchmark để kiểm chứng nghi ngờ hay đo xem thao tác nào trong Firefox chậm hơn bao nhiêu mili giây, nhưng nếu là công cụ dùng suốt cả ngày hằng ngày, kể cả cho công việc, thì rất dễ cảm nhận được khác biệt
Gần đây thấy nhiều báo cáo cải thiện hiệu năng và số liệu sử dụng thực tế, tôi có ý định dùng thử lại vài ngày. Nếu không cảm thấy khác biệt, hoặc thực sự thấy nhanh hơn, tôi sẽ quay lại
Lý do muốn quay lại là vì nhất thiết cần có một engine trình duyệt thay thế. Tôi không muốn các ủy ban tiêu chuẩn trở thành kiểu sự kiện “năm nay Google đã quyết định phải làm như thế này”
Tính năng “sát thủ” của Firefox vẫn là cho phép sự linh hoạt trong quản lý tab. Nhờ Sidebery và TreeStyleTab mà tôi vẫn tiếp tục ở lại hệ sinh thái Firefox
Với cách dùng tích rất nhiều tab hoặc dùng tab như danh sách việc cần làm, trải nghiệm tốt vượt trội đến mức khó tưởng tượng mình dùng thứ khác
Trên Android tôi cũng dùng Firefox vì có các tiện ích bổ sung uBlock Origin và Dark Reader. Việc duyệt web trên di động tốt hơn nhiều. Không phải tôi trung thành mạnh mẽ với bản thân Firefox, chỉ là tôi chưa tìm được trình duyệt dựa trên Chromium nào hợp với mình đến mức này
Và tôi cũng thích việc có thể dùng CSS để biến thanh tab, chẳng hạn, thành ba hàng có thể cuộn
Trên màn hình nhỏ, nếu có cả hai thì cảm giác mất khá nhiều không gian hiển thị
Tôi đã dùng Firefox làm trình duyệt chính trong nhiều năm và nó rất tốt. Có thể vì tôi chủ yếu chạy trên thiết bị cấu hình cao, nhưng trên Linux, Windows và Mac đều không có gì phàn nàn đáng kể
Khi mở file JS lớn, debugger chậm đi khá nhiều, và source map còn làm sự chậm chạp đó tăng thêm. Cũng có trường hợp khi dùng source map không phải lúc nào cũng kiểm tra được giá trị biến, nhưng có thể đó là vấn đề cấu hình công cụ build
Trong Speedometer 2, Firefox chậm hơn Chrome rất nhiều, còn Chrome chậm hơn Edge một chút. Dù vậy trong đời sống thực tế tôi nghĩ không có khác biệt lớn
Tôi tôn trọng và tin tưởng bảo vệ quyền riêng tư của Mozilla. Container, khả năng chạy Ublock và Tampermonkey trên di động là những thứ khó định giá
Đổi sang Edge thì nhanh hơn nhiều và cũng dùng ít RAM 4GB hơn. Tôi không ngờ khác biệt lại lớn đến vậy, nhưng không thể phủ nhận; trên PC cấu hình thấp, Edge chạy tốt hơn hẳn các trình duyệt khác
Tôi không hiểu benchmark còn có ý nghĩa gì
Tôi tin rằng đội ngũ Firefox biết họ đang làm gì về hiệu năng và đã rút ra kết luận đúng
Tuy nhiên, một điểm hơi tiếc là tôi cũng muốn thấy thay đổi hiệu năng so với cùng kỳ năm trước để kiểm soát hiệu ứng mùa vụ. Hình 1 là thay đổi theo đơn vị 1/100 giây, nên khi nhìn tín hiệu cỡ này, việc kiểm soát nhiễu có vẻ quan trọng hơn
Nói thêm là tôi là người dùng hài lòng với Firefox
https://arewefastyet.com/
Ngoài ra còn có https://wiki.mozilla.org/Areweyet
Nhìn một cách ngây thơ thì xu hướng ở đây khá nhất quán và tín hiệu có vẻ lớn hơn độ phân tán. Nó trông giống kết quả của việc các kỹ sư giỏi đã tối ưu chỉ số đó trong giai đoạn đo
Đồng thời tôi đồng ý rằng nếu có trục thời gian dài hơn thì sẽ tốt. Vì cải thiện lớn trong tháng 8 có thể không phải nhờ Firefox 116 ra mắt vào ngày 1/8, mà có thể là do người dân Bắc bán cầu trong mùa nghỉ hè đọc những nội dung nhẹ nhàng hơn
Nếu bạn vẫn bám vào các trình duyệt nền tảng Chromium vì cảm giác tốc độ, thì ít nhất cũng nên thử Firefox một lần
Dạo này tôi dùng ổn đến mức không còn nghĩ đến chuyện quay lại nữa, và việc duy trì mạnh mẽ sự đa dạng trình duyệt là điều thực sự quan trọng cho tương lai của web
Firefox cũng rất ấn tượng, và tôi cũng đã thử một fork tên là Floorp. Nó có vài tính năng bổ sung hữu ích, hỗ trợ đồng bộ, và tôi thấy tốt hơn Firefox thông thường. Trước đây tôi dùng ungoogled-chromium
https://github.com/Floorp-Projects/Floorp/releases
Tiếc là theo trải nghiệm của tôi, một số website vẫn hoạt động tốt hơn trên trình duyệt Chromium. Chỉ là trải nghiệm cá nhân, nhưng tôi cũng cảm thấy có kiểu nhận diện dấu vân tay tiêu cực với Firefox trên các trang thuộc Google, và dường như cũng có nhiều rò rỉ bộ nhớ hơn. Vì Manifest V3, cuối cùng có lẽ tôi sẽ chuyển sang Firefox, nhưng hiện tại tôi vẫn ở lại với Brave
Tôi thật sự không rõ liệu nó đã tốt hơn chưa, nhưng có hai vấn đề mãi chưa được giải quyết
Thứ nhất, với video VP9, giải mã video bằng tăng tốc phần cứng hoạt động khá kỳ lạ. Dù tắt đi hoặc ép dùng AV1 thì đôi khi vẫn bị giật
Thứ hai, trong môi trường đồ họa hybrid, nếu vừa xem video ở nền vừa chơi game thì kWin bị treo, video đang phát trong trình duyệt chuyển sang màu xanh lá, và mọi thứ dùng iGPU hoặc dGPU đều giật nghiêm trọng. Cuối cùng phải đăng xuất rồi đăng nhập lại để khởi động lại session thủ công
Vấn đề thứ hai có thể do Nvidia prime offload trên Wayland. Có card Nvidia là lỗi của tôi, nhưng tôi chưa tìm được chủ đề liên quan nào trên Bugzilla vẫn chưa được xử lý, và thành thật mà nói tôi hơi sợ báo lỗi rồi bị hỏi vặn. Tôi muốn debug thêm, nhưng không đủ kiên nhẫn
Chưa đến mức khiến tôi rời Firefox, nhưng đây là hai nỗi phiền dai dẳng. Dù sao cũng chúc mừng đội ngũ. Hôm nay tôi đã chuyển đổi thành công 5 người sang Firefox
Nếu dùng máy desktop, cũng đáng thử tắt hoàn toàn giải mã video bằng phần cứng
Máy của tôi hỗ trợ tăng tốc phần cứng VP9 nhưng độ tin cậy kém, và khi chuyển sang H.264 thì video YouTube phát mượt. Các trang video khác mặc định dùng H.264, nên thực tế chỉ cần cho YouTube
Đây đúng là một hồi quy hiệu năng rất kỳ lạ