1 điểm bởi GN⁺ 2023-08-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Firefox đã nhanh hơn Chrome trong bài benchmark JavaScript SunSpider cũ, nhưng bài kiểm tra này về cơ bản đã được thay thế bởi JetStream
  • Gần đây, Firefox Nightly News cho biết Firefox có vẻ đã vượt Chrome trong SunSpider, và các số liệu công khai cũng cho thấy Firefox đang dẫn trước
  • Nguồn benchmark là AreWeFastYet.com, và đối tượng so sánh là bài kiểm tra hiệu năng JavaScript đã khoảng 10 năm tuổi
  • Trong JetStream 2.0 mới hơn và nặng hơn, Google Chrome vẫn dễ dàng vượt Firefox
  • Trong khoảng một tháng gần đây, Firefox đã thực hiện nhiều cải tiến ngoài tốc độ chạy SunSpider, như tốc độ tải lên HTTP/2

Firefox dẫn trước trong SunSpider cũ

  • Các nhà phát triển Mozilla xem việc Firefox cho kết quả nhanh hơn Google Chrome trong bài benchmark JavaScript SunSpider là một tín hiệu tích cực
  • SunSpider là bài benchmark JavaScript đã khoảng 10 năm tuổi, và hiện đã được JetStream thay thế
  • Gần đây, Firefox Nightly News cho biết: “We’re now apparently beating Chrome on the SunSpider JavaScript benchmark!”
  • Các số liệu được công bố cho thấy Firefox đang dễ dàng vượt Chrome trong bài benchmark JavaScript cũ này
  • Dữ liệu benchmark đến từ AreWeFastYet.com

Chrome vẫn giữ ưu thế trong benchmark hiện đại

  • Trong bài benchmark JetStream 2.0 mới hơn và có yêu cầu cao hơn, Google Chrome vẫn dễ dàng vượt Firefox
  • Trong khoảng một tháng gần đây, Firefox đã tăng mạnh tốc độ chạy benchmark JavaScript SunSpider
  • Trong cùng thời gian đó, nhiều công việc khác cũng được tiến hành, bao gồm cải thiện tốc độ tải lên HTTP/2
  • Có thể xem các thay đổi của bản Firefox Nightly mới nhất trong Firefox Nightly News

1 bình luận

 
GN⁺ 2023-08-16
Ý kiến trên Hacker News
  • Nhìn từ góc độ một cựu kỹ sư V8, SunSpider là một benchmark tệ hại, và thật khó tin là vẫn còn được theo dõi
    Trong gần 15 năm qua, nó đã dẫn hướng sai cho công việc kỹ thuật hiệu năng JavaScript, khiến các engine tạo ra những mánh tối ưu hóa kỳ lạ chẳng giúp ích gì cho các trang web thực tế
    V8 từ lâu đã rời xa hầu hết các microbenchmark: https://benediktmeurer.de/2016/12/16/the-truth-about-traditi...
    Điều đó không có nghĩa là các cải thiện hiệu năng của Firefox không quan trọng hay không đáng mừng. Chỉ là SunSpider là một trong những benchmark tệ nhất có thể xem xét

    • Nói chính xác thì vẫn theo dõi theo nghĩa là nó vẫn được chạy như một phần của dashboard cũ
      Chi phí thấp, và đôi khi cũng bắt được những hồi quy hiệu năng ngoài ý muốn
      Nhóm SpiderMonkey cũng hoàn toàn đồng ý với việc bỏ qua microbenchmark. Họ coi trọng Speedometer, vốn tương quan khá tốt với hiệu năng thực tế, còn JetStream2 thì chỉ chọn xem một số phần cần thiết
      Những thứ cũ hơn không phải là mục tiêu mà chỉ là thước đo; số liệu tăng thì tốt, nhưng chỉ khi đó là hiệu ứng phụ của công việc được làm vì lý do khác
      Đặc biệt, cải thiện SunSpider trong biểu đồ này là hiệu ứng phụ của công việc với Speedometer đã làm trong năm nay
    • Liên kết được đưa ra đang ủng hộ Speedometer, nơi Firefox được biết là đã vượt Chrome rồi
      https://news.ycombinator.com/item?id=36770883
    • Firefox theo dõi hiệu năng trên nhiều benchmark
      Nhìn vào hiệu năng so với Chrome ở nhiều hạng mục trong một năm qua, việc thấy khá nhiều mục liên tục cải thiện là điều đáng khích lệ
      https://arewefastyet.com/win10/benchmarks/overview?numDays=3...
    • Benchmark dựa trên các trang web thực tế vừa có vẻ là ý tưởng hay vừa có vẻ là ý tưởng dở
      Lý do hay thì obvious, nhưng lý do dở là vì nó tạo ra một vòng phản hồi. Người ta phát triển theo hiệu năng, và hiệu năng lại được cải thiện theo những gì người ta đã phát triển
      Tôi tò mò nhóm V8 đã xử lý vấn đề kiểu này như thế nào
    • Công bằng mà nói, khi SunSpider mới ra đời, nó phản ánh khá chính xác các nút thắt cốt lõi của những engine JavaScript tồn tại trên web lúc đó
      Điều này cũng đúng với V8; dù khi ra mắt V8 có đưa ra bộ benchmark riêng, bộ đó lại quá thiên về truy cập thuộc tính và thiếu phần tải trang ban đầu mà SunSpider tình cờ bao phủ
      Tất nhiên đó là chuyện 15 năm trước, nên khó có thể nói benchmark khi ấy còn phản ánh điều gì hữu ích hiện nay; giờ nó gần như chỉ còn giá trị cho việc phát hiện hồi quy
  • Tôi chỉ dùng Firefox trên tất cả máy tính và điện thoại mình có
    Cho đến nay tôi rất hài lòng với hiệu năng và thật lòng mong nó tiếp tục được cải thiện. Lựa chọn thứ hai khi không thể dùng Firefox là Brave, còn Chromium là lựa chọn cuối cùng
    Trên Firefox, tôi rất khuyên dùng các extension này: AdNauseam https://addons.mozilla.org/en-US/firefox/addon/adnauseam/, Consent-O-Matic https://addons.mozilla.org/en-US/firefox/addon/consent-o-mat..., Firefox Multi-Account containers https://addons.mozilla.org/en-US/firefox/addon/multi-account..., I don't care about cookies https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-a...
    Như đã nói bên dưới, nếu bạn không tin tưởng Avast thì nên tránh Consent-O-Matic

  • Câu chuyện là: “Firefox dễ dàng đánh bại Chrome trong một benchmark JavaScript 10 năm tuổi”, đồng thời “trong JetStream 2.0 mới hơn và khắt khe hơn, Google Chrome vẫn dễ dàng đánh bại Firefox”

    • Trên macOS, Safari còn áp đảo Chrome với cách biệt lớn hơn thế
    • Tôi rất thích Firefox, nhưng đọc điều này thấy hơi chua chát
  • Cần chỉ ra rằng SunSpider đã không được cập nhật từ năm 2013
    JetStream đại diện tốt hơn cho workload JavaScript hiện đại, nhưng khoảng cách trong benchmark đó cũng đang thu hẹp

  • Tôi đang làm việc với engine V8, và nó là một bãi mìn de-optimization nơi những thứ không ngờ tới lại trở nên chậm
    Cấu trúc của exception handler có thể thay đổi đáng kể đặc tính hiệu năng của code, còn async/await thì đúng là gần như hên xui. Có lúc Promise nhanh hơn, có lúc block async nhanh hơn
    Một phần việc bị chậm có thể đổ cho đặc tả yếu. Không hiểu vì sao destructuring bằng ... lại dùng iterator
    Nhưng tôi tự hỏi liệu đội V8 có đang chạy theo benchmark thay vì code thực tế vốn không được viết hoàn hảo hay không

    • Nếu ... không thể dùng iterator, đặc biệt sức mạnh của generator sẽ yếu đi rất nhiều
    • Đội V8 không làm vậy
      Việc hiệu năng V8 trong benchmark này bị chững lại là vì họ đã không còn bận tâm đến nó từ lâu
      Đáng tiếc là Firefox có động lực để bận tâm. Vì dù benchmark không quan trọng, trông như bị tụt lại phía sau thì vẫn tạo ấn tượng xấu
    • Không phải ngược lại mới đúng sao? https://v8.dev/blog/real-world-performance
      Tôi nhớ là có một bài gần đây hơn nói về chủ đề này bằng số liệu và ví dụ, nhưng giờ không tìm ra. Có thể là trên blog của đội chromium/chrome, hoặc ai đó khác có thể tìm được
  • Gần đây có nhiều người nói Chrome đang trở nên xấu xa, nên tôi đã dành vài ngày chỉnh lại extension Chrome của mình, IPvFoo, để nó cũng hoạt động đúng trên Firefox
    IPvFoo là công cụ để quan sát quá trình chuyển đổi sang IPv6. Về mặt kỹ thuật thì từ năm 2017 nó đã có bản cho Firefox, nhưng có nhiều lỗi tương thích mà tôi từng hy vọng một ngày nào đó Firefox sẽ sửa
    Cuối cùng tôi quyết định đi vòng qua các vấn đề còn lại, và giờ tính năng giữa Chrome/Firefox đã ngang bằng trên cùng một codebase: https://github.com/pmarks-net/ipvfoo

  • Firefox bật uBO nhanh hơn hơn 100% so với các trình duyệt dựa trên Chromium
    Trên các trình duyệt dựa trên Chromium, uBO không hoạt động đúng do các hạn chế

  • Những cải thiện là có thật
    Tôi vừa test bằng Speedometer 3.0 mới nhất, vẫn chưa phát hành nhưng là mã nguồn mở, và dùng phiên bản mới nhất của từng trình duyệt
    Firefox Nightly(Gecko) 11.6, Safari TP(WebKit) 11.4, Chrome Canary(Blink) 9.9
    https://github.com/WebKit/Speedometer

  • Thành thật mà nói, với tôi Firefox vẫn là lựa chọn thứ hai cho đến khi công cụ debug đạt ngang tầm Chrome và UI tab được trau chuốt thêm một chút
    Tôi muốn dùng Firefox hằng ngày, nhưng khi dùng thì có cảm giác tốc độ phát triển của mình bị chậm lại

    • Ngược lại, tôi thấy công cụ dành cho nhà phát triển của Firefox dễ dùng hơn nhiều
      Tôi không thích thiết kế của Firefox, nhưng có thể sửa bằng theme và add-on
    • Nếu vấn đề là UI thì có thể chỉnh một chút userchrome.css
      Tôi đã làm vậy để dùng treestyletab theo cách mình muốn, và nếu quan tâm đến UI thì userchrome.css cho khá nhiều tự do
      Hơn nữa tôi còn đồng bộ giữa các thiết bị bằng Nextcloud, nên không cần chỉnh riêng trên từng máy
    • Tôi cũng muốn UI thay đổi một chút tương tự
      Không cần hào nhoáng, chỉ cần đơn giản như Chromium mặc định là ổn
  • Gần đây tôi thấy một regression hiệu năng của Firefox và định gửi bug report nên đã tìm hiểu, có vẻ các công cụ theo dõi hiệu năng khá công khai đang được chú ý
    Việc có thể dễ dàng upload và chia sẻ profiling trace cũng hữu ích: https://firefox-source-docs.mozilla.org/testing/perfdocs/ind...
    Nếu quan tâm đến hiệu năng Firefox, blog chuyên biệt này liên tục cập nhật tin tức: https://blog.mozilla.org/performance/
    Nếu bạn cảm thấy Chromium nhanh hơn rõ rệt trên một website cụ thể, có thể báo nhanh tại https://webcompat.com/. Dù vậy, ngay cả với góc nhìn của người đã quen GitHub Issues, Bugzilla cũng ổn hơn tôi tưởng