Giảm mức sử dụng bộ nhớ của Chrome là một trong những ưu tiên hàng đầu của nhóm trong năm nay. Chúng tôi đã thấy mức sử dụng bộ nhớ của Gmail giảm tới 45% nhờ các điểm cải tiến trong quy trình thu thập rác của V8, nhưng chúng tôi mới chỉ bắt đầu. Một trong những thử nghiệm tiếp theo của chúng tôi về việc sử dụng bộ nhớ sẽ nhắm đến những người tích trữ thẻ (như tôi). Tính năng này được gọi là Huỷ bỏ thẻ.

Tính năng loại bỏ thẻ được cung cấp dưới dạng thử nghiệm trong Chrome 46 trở lên.
Thông tin khái quát
Đối với mỗi thẻ bạn mở, quy trình kết xuất của chúng tôi thường mất khoảng 50 MB cho mỗi thẻ, mặc dù hầu hết mọi người chỉ sử dụng một thẻ tại một thời điểm. Nếu bạn mở 10 thẻ, thì ít nhất 450 MB bộ nhớ sẽ được dùng để duy trì trạng thái thẻ ở chế độ nền. Điều này có thể gây khó khăn một chút theo thời gian.

Một trong những mục tiêu của chúng tôi là giảm bộ nhớ được sử dụng trên các thẻ mà bạn không thực sự sử dụng. Nếu xem những thẻ đang tiêu thụ bộ nhớ hệ thống trong Trình quản lý tác vụ của Chrome, tôi thực sự chỉ "sử dụng" một hoặc hai trang web ở bên dưới trong khi các thẻ khác ở chế độ nền không được sử dụng.

Đó là lý do tính năng loại bỏ thẻ có thể giúp giảm mức sử dụng bộ nhớ.
Huỷ các thẻ không dùng đến
Tính năng loại bỏ thẻ cho phép Chrome tự động loại bỏ các thẻ mà bạn không quan tâm đến khi phát hiện bộ nhớ hệ thống sắp hết. Khi nói đến việc loại bỏ, chúng ta muốn nói đến điều gì? Thẻ bị loại bỏ sẽ không đi đâu cả. Chúng ta sẽ huỷ nhưng thẻ này vẫn hiển thị trên dải thẻ Chrome. Nếu bạn quay lại một thẻ đã bị loại bỏ, thẻ đó sẽ tải lại khi được nhấp vào. Nội dung biểu mẫu, vị trí cuộn, v.v. được lưu và khôi phục giống như trong quá trình điều hướng thẻ tiến/lùi.
Chúng tôi cũng có một tính năng mới khác cho phép lưu tất cả tài nguyên thẻ vào bộ nhớ đệm cục bộ. Tính năng này hoạt động hiệu quả với tính năng loại bỏ thẻ khi bạn không có mạng. Khi thẻ được kích hoạt lại, bạn có thể chọn tải lại phiên bản đã lưu vào bộ nhớ đệm trước đó được tải qua mạng. Để bật tính năng tải lại trang từ bộ nhớ đệm, bạn có thể thử một thử nghiệm khác trong chrome://flags/#show-saved-copy
.
Bạn có thể thử tính năng loại bỏ thẻ ngay hôm nay bằng cách bật tính năng này thông qua chrome://flags/#enable-tab-discarding
và chạy lại Chrome. Bạn có thể kiểm soát việc bật hoặc tắt tính năng này thông qua cùng một trang chrome://flags
của Chrome.


Một trang mới có tên là chrome://discards
cho phép bạn liệt kê những thẻ đang mở và chúng tôi cố gắng chia sẻ một số thông tin chi tiết về mức độ thú vị (theo chúng tôi) của các thẻ đó đối với bạn, từ nhiều nhất đến ít nhất.

Để thử nghiệm tính năng này, bạn có thể thực hiện hành vi duyệt web thông thường cho đến khi hệ thống của bạn ở chế độ bộ nhớ thấp hoặc kích hoạt tính năng loại bỏ thẻ từ about:discards bằng cách nhấp vào "Loại bỏ thẻ ngay". Thao tác này sẽ loại bỏ thẻ cuối cùng trong danh sách. Bạn cũng có thể loại bỏ một thẻ cụ thể khỏi danh sách bằng cách nhấp vào nút "Loại bỏ" tương ứng. Thẻ bị loại bỏ sẽ hiển thị với tiền tố [Discarded] (Bị loại bỏ).

Khi huỷ thẻ, các thẻ sẽ bị huỷ theo thứ tự sau:
- Các trang nội bộ như trang thẻ mới, dấu trang, v.v.
- Các thẻ đã chọn từ lâu
- Các thẻ đã chọn gần đây
- Ứng dụng chạy trong cửa sổ
- Thẻ được ghim
- Thẻ đã chọn
Chúng tôi đã bật thử nghiệm loại bỏ thẻ trong Chrome Canary cho hệ điều hành Windows và Mac, đồng thời sẽ sớm triển khai trên Linux.

Nguồn cảm hứng: xin chào, trình treo tuyệt vời
Nếu bạn thấy tính năng loại bỏ thẻ quen thuộc, thì đó là vì bạn có thể đã gặp các tiện ích Chrome hữu ích cung cấp cho bạn một phiên bản đơn giản hơn một chút về ý tưởng này, chẳng hạn như The Great Suspender. The Great Suspender nhằm giảm mức sử dụng bộ nhớ và GPU của Chrome bằng cách tạm ngưng các thẻ sau một khoảng thời gian không hoạt động tuỳ chỉnh.

Tương tự như việc loại bỏ thẻ, bạn có thể huỷ tạm ngưng thẻ khi cần tương tác lại với các thẻ đó. Great Suspender duy trì tiêu đề và biểu tượng trang của mỗi thẻ, hiển thị các thẻ bị tạm ngưng ở trạng thái mờ, giúp bạn dễ dàng quay lại các thẻ đó bất cứ lúc nào.

Các thẻ ở chế độ nền mà tôi không sử dụng đã bị tạm ngưng, giúp tiết kiệm bộ nhớ. Tuy nhiên, các thẻ tôi vẫn đang sử dụng (GitHub và YouTube) vẫn chạy như bình thường.
Chúng tôi thực sự đã có một cuộc trò chuyện thú vị với tác giả của tiện ích Great Suspender trong khi phát triển tính năng loại bỏ thẻ. Họ rất vui khi thấy chúng tôi giải quyết vấn đề này theo cách hiệu quả hơn so với một tiện ích có thể làm được, chẳng hạn như mất trạng thái không hoạt động của người dùng.
Các điểm cải tiến trong tương lai: trình chuyển đổi tuần tự thẻ
Trình chuyển đổi tuần tự thẻ là một công việc trong tương lai mà chúng tôi cho rằng có thể dẫn đến những cải tiến đáng kể về phương pháp hiện tại của chúng tôi đối với việc loại bỏ thẻ. Phương thức này lấy nội dung của một thẻ Chrome và chuyển đổi tuần tự trạng thái *hiện tại* của thẻ đó thành một blob nhị phân. Sau đó, bạn có thể chuyển đổi tuần tự blob nhị phân này thành một thẻ.
Trình chuyển đổi tuần tự sẽ chuyển đổi tuần tự hầu hết mọi thứ mà Chrome, Blink và V8 cần để bảo tồn đúng cách một thẻ (đây là điều mà các tiện ích Chrome giải quyết vấn đề này trước đây không thể dễ dàng đạt được). Quá trình chuyển đổi tuần tự sẽ bao gồm các đối tượng thường gặp: DOM (bao gồm nhiều WebGL và Canvas), CSS và trạng thái của máy ảo JavaScript V8.

Nếu sử dụng Android hoặc ChromeOS, bạn có thể biết rằng (tương tự như thử nghiệm loại bỏ thẻ được đề cập trong bài đăng này) chúng tôi sẽ loại bỏ các thẻ ở chế độ nền một cách mạnh mẽ để đảm bảo mức sử dụng bộ nhớ ở mức thấp. Vấn đề với cách chúng ta giải quyết vấn đề này là thẻ của bạn sẽ mất *tất cả* trạng thái.
Khi bạn lại quan tâm đến thẻ đó, chúng tôi sẽ phải tải lại thẻ đó và tất cả hoạt động tương tác của bạn với thẻ đó sẽ bị mất. Trình chuyển đổi tuần tự thẻ chỉ giải quyết vấn đề này theo cách giúp bạn quay lại gần như chính xác như trước mà không cần quay lại mạng. Chúng tôi rất mong được chia sẻ thêm thông tin về công việc này vào lúc khác.
Hãy dùng thử tính năng loại bỏ thẻ và cho chúng tôi biết cảm nhận của bạn
Chúng tôi muốn biết liệu tính năng này có hữu ích cho bạn không và cách cải thiện tính năng này. Hãy dùng thử, khám phá tính năng này (đặc biệt nếu bạn là người thích mở nhiều thẻ!) và cho chúng tôi biết ý kiến của bạn trong phần bình luận. :) Chúng tôi cũng rất mong bạn gửi phiếu yêu cầu hỗ trợ về mọi lỗi bạn gặp phải trên crbug.com.