Quantum Gecko_(bộ_máy_trình_bày)

Quantum là một dự án Mozilla bao gồm một số nỗ lực phát triển phần mềm để "xây dựng công cụ web thế hệ tiếp theo cho người dùng Firefox". Nó bao gồm nhiều cải tiến cho Gecko, phần lớn được kết hợp từ dự án Servo thử nghiệm. Quantum cũng bao gồm các sàng lọc cho giao diện người dùng và các tương tác.[12][32]

Firefox 57, được phát hành vào tháng 11 năm 2017, là phiên bản đầu tiên có kịch hoạt thành phần Servo. Mozilla đặt tên cho phiên bản này và các kế hoạch phát hành trong tương lai là "Firefox Quantum".[33][34]

Bối cảnh

Năm 2013, Mozilla đã bắt đầu dự án Servo thử nghiệm, đây là một công cụ được thiết kế từ đầu với mục tiêu cải thiện tính đồng thời và song song đồng thời giảm các lỗ hổng an toàn bộ nhớ. Một yếu tố quan trọng là viết Servo bằng ngôn ngữ lập trình Rust, cũng được tạo bởi Mozilla, được thiết kế để tạo mã được biên dịch với độ an toàn bộ nhớ, đồng thời và song song tốt hơn so với mã C++ được biên dịch.[5]

Kể từ tháng 4 năm 2016, Servo cần ít nhất vài năm phát triển để trở thành một công cụ trình bày đầy đủ tính năng.[35] Do đó, họ quyết định bắt đầu dự án Quantum để đưa các phần Servo ổn định vào Firefox.

Thành phần

Dự án Quantum bao gồm một số tiểu dự án.[12]

  • CSS: Hệ thống CSS song song của Servo được tích hợp vào Gecko. Điểm chuẩn cho thấy hiệu năng quy mô tuyến tính với số lượng lõi CPU.[36] Điều này đã được phát hành trong Firefox 57.[34]
  • Render: Kiến trúc kết xuất của Servo, được gọi là WebRender, được tích hợp vào Gecko. WebRender thay thế mô hình vẽ chế độ tức thời bằng mô hình chế độ giữ lại được GPU tăng tốc dễ dàng hơn bằng cách tận dụng sự tương tự của CSS/DOM với biểu đồ cảnh. Kết xuất tình huống xấu nhất trong thử nghiệm vượt quá 60 khung hình mỗi giây.[37]
  • Compositor: Bộ tổng hợp hiện tại của Gecko đã chuyển sang quy trình riêng của mình, cách ly các tab trình duyệt khỏi các sự cố liên quan đến trình điều khiển đồ họa. Vì các sự cố của bộ tổng hợp sẽ không làm giảm quá trình nội dung trình duyệt, quá trình tổng hợp có thể được khởi động lại một cách minh bạch mà không làm mất dữ liệu người dùng. Nó đã được phát hành trong Firefox 53.[38]
  • DOM: Lấy cảm hứng cơ bản từ kiến trúc Constellation của Servo[39] và công cụ Presto của Opera,[40] DOM lượng tử sử dụng các luồng được lên lịch hợp tác trong DOM để tăng khả năng phản hồi mà không làm tăng số lượng quá trình và do đó, sử dụng bộ nhớ.
  • Flow: Một chiếc ô cho người dùng cải thiện hiệu suất có thể nhìn thấy được điều khiển bởi một nhóm làm việc trên các thành phần của Gecko. Hiện tại tập trung vào cải tiến hiệu suất người dùng thực trên các ứng dụng web lớn, chủ yếu là G SuiteFacebook.[41]
  • Photon: Làm mới giao diện người dùng của toàn bộ ứng dụng, tập trung mạnh vào việc cải thiện hiệu suất UI. Được coi là một dự án chị em với Quantum Flow.[42] Nó đã được phát hành trong Firefox 57.[33]
  • Mạng: Cải thiện hiệu suất của Necko, lớp mạng của Gecko, bằng cách di chuyển thêm hoạt động mạng ra khỏi luồng chính, ưu tiên phụ thuộc vào ngữ cảnh của các luồng mạng và chạy đua lớp bộ đệm với mạng.[43] Tính năng này đã được phát hành trong Firefox 59.[44]

Tài liệu tham khảo

WikiPedia: Gecko_(bộ_máy_trình_bày) http://news.cnet.com/2100-1023-980492.html http://picasa.google.com/linux/download.html#picas... http://www.infoworld.com/article/07/01/03/Hnsugari... http://news.softpedia.com/news/Firefox-Now-Uses-th... http://news.softpedia.com/news/mozilla-announces-q... http://www.webdevout.net/browser_support.php http://dbaron.org/log/2003-01#l20030109 http://jrex.mozdev.org/ http://www.mozillazine.org/talkback.html?article=5... http://wiki.winehq.org/Gecko