Mengurangi jejak memori Chrome adalah salah satu prioritas utama tim tahun ini. Kami telah melihat pengurangan penggunaan memori Gmail hingga 45% berkat peningkatan proses pengumpulan sampah V8, tetapi kami benar-benar baru memulai. Salah satu eksperimen kami berikutnya dalam penggunaan memori ditujukan untuk pengguna tab (seperti saya). Caranya adalah Penghapusan Tab.
Penghapusan tab tersedia sebagai eksperimen di Chrome 46 dan yang lebih baru.
Latar belakang
Untuk setiap tab yang Anda buka, proses perender kami biasanya memerlukan sekitar 50 MB per tab, meskipun sebagian besar orang hanya menggunakan satu tab dalam satu waktu. Jika Anda membuka 10 tab, setidaknya ada 450 MB memori yang dihabiskan hanya untuk mempertahankan status tab latar belakang Anda. Ini bisa menjadi sedikit sulit dari waktu ke waktu.
Salah satu tujuan kami adalah mengurangi memori yang digunakan pada tab yang tidak benar-benar Anda gunakan. Jika saya melihat tab yang menghabiskan memori sistem saya di Task Manager Chrome, saya hanya 'menggunakan' satu atau dua situs di bawah, sementara tab lain di latar belakang tidak digunakan.
Di situlah penghapusan tab dapat membantu mengurangi penggunaan memori.
Membuang tab yang tidak digunakan
Penghapusan tab memungkinkan Chrome secara otomatis menghapus tab yang tidak menarik bagi Anda saat terdeteksi bahwa memori sistem hampir habis. Apa yang kami maksud dengan membuang? Nah, {i>tab<i} yang dibuang tidak akan pergi ke mana-mana. Kami akan menghentikannya, tetapi masih terlihat di tab setrip Chrome. Jika Anda kembali ke tab yang telah dibuang, tab itu akan dimuat ulang ketika diklik. Konten formulir, posisi scroll, dan sebagainya disimpan dan dipulihkan dengan cara yang sama seperti selama navigasi tab maju/mundur.
Kami juga memiliki fitur baru lainnya yang memungkinkan penyimpanan cache semua resource tab secara lokal,
yang dapat berfungsi baik dengan penghapusan tab saat Anda offline. Saat tab diaktifkan kembali, kami menawarkan pilihan untuk memuat ulang versi cache yang sebelumnya dimuat melalui jaringan. Untuk mengaktifkan pemuatan ulang halaman dari cache, Anda dapat
mencoba eksperimen lain di bagian chrome://flags/#show-saved-copy
.
Anda dapat mencoba penghapusan tab sekarang dengan mengaktifkannya melalui
chrome://flags/#enable-tab-discarding
dan meluncurkan kembali Chrome. Anda dapat
mengontrol apakah fitur ini diaktifkan atau dinonaktifkan melalui halaman chrome://flags
Chrome yang sama.
Halaman baru bernama chrome://discards
memungkinkan Anda mencantumkan tab yang saat ini
terbuka dan kami mencoba membagikan beberapa insight tentang seberapa menarik (menurut kami) tab tersebut
bagi Anda, mulai dari yang paling banyak hingga yang paling tidak.
Untuk menguji fitur ini, Anda dapat melakukan perilaku penjelajahan normal hingga sistem berada dalam mode memori rendah, atau memicu penghapusan tab dari about:discards dengan mengklik 'Hapus tab sekarang'. Tindakan ini akan menghapus tab terakhir dalam daftar. Anda juga dapat menghapus tab tertentu dari daftar dengan mengklik tombol 'Hapus' yang sesuai. Tab yang dihapus akan ditampilkan dengan awalan [Dibuang].
Penghapusan tab akan menghapus tab dalam urutan ini:
- Halaman internal seperti halaman tab baru, bookmark, dll.
- Tab yang sudah lama dipilih
- Tab yang dipilih baru-baru ini
- Aplikasi yang berjalan di jendela
- Tab yang disematkan
- Tab yang dipilih
Kami telah mengaktifkan eksperimen penghapusan tab di Chrome Canary untuk Windows dan Mac OS, dengan implementasi Linux yang akan segera hadir.
Inspirasi: halo, tali pengikat yang bagus
Jika penghapusan tab terdengar familier, ini karena Anda mungkin menemukan ekstensi Chrome yang berguna dan memberikan versi ide yang sedikit lebih sederhana, seperti The Great Suspender. Great Suspender bertujuan untuk mengurangi jejak memori dan GPU Chrome dengan menangguhkan tab setelah tidak aktif selama jangka waktu tertentu.
Serupa dengan penghapusan tab, penangguhan tab dapat dibatalkan saat Anda perlu berinteraksi dengan tab tersebut lagi. Great Suspender mempertahankan setiap judul dan favicon tab, menampilkan tab yang ditangguhkan dalam keadaan redup, sehingga memudahkan navigasi kembali kapan saja.
Tab di latar belakang yang tidak saya gunakan secara aktif telah ditangguhkan, sehingga menghemat memori. Tab yang masih saya gunakan secara aktif (GitHub dan YouTube) masih berjalan seperti biasa.
Kami sebenarnya berbincang dengan penulis ekstensi Great Suspender selagi mengembangkan penghapusan tab, dan mereka senang melihat kami secara native mengatasi masalah ini dengan cara yang lebih efisien daripada kemampuan ekstensi, seperti kehilangan status ketidakaktifan pengguna.
Peningkatan di masa mendatang: serialisasi tab
Penserialisasi tab adalah bagian dari pekerjaan mendatang yang menurut kami dapat menghasilkan peningkatan yang signifikan pada pendekatan kami saat ini untuk penghapusan tab. Fungsi ini mengambil konten tab Chrome dan menserialisasi status *saat ini* ke dalam blob biner. Blob biner ini nantinya dapat dideserialisasi menjadi tab.
Penserialisasi akan menserialisasi hampir semua yang diperlukan Chrome, Blink, dan V8 untuk mempertahankan tab dengan benar (sesuatu yang ekstensi Chrome yang secara historis menangani masalah ini secara historis belum dapat dicapai dengan mudah). Serialisasi akan menyertakan curian yang biasa terjadi: DOM (dengan banyak WebGL dan Canvas), CSS, dan status VM JavaScript V8.
Jika Anda menggunakan Android atau ChromeOS, Anda mungkin sudah mengetahui bahwa (serupa dengan tab yang menghapus eksperimen yang dibahas dalam postingan ini) kami menghentikan tab latar belakang secara agresif untuk memastikan penggunaan memori rendah. Masalah dengan cara kami menangani ini adalah bahwa tab Anda akan kehilangan *semua* statusnya.
Jika Anda kembali tertarik pada tab tersebut, kami harus memuat ulang tab tersebut dan semua interaksi Anda dengan tab tersebut akan hilang. Penserialisasi tab hanya mendekati masalah ini dengan cara yang membuat Anda kembali ke keadaan semula tanpa harus kembali ke jaringan. Kami berharap dapat membagikan informasi selengkapnya tentang upaya ini di kemudian hari.
Coba hapus tab dan beri tahu kami pendapat Anda
Kami ingin tahu apakah fitur ini berguna bagi Anda dan cara meningkatkannya. Cobalah, cobalah-coba fitur ini (terutama jika Anda adalah penumpuk tab) dan sampaikan pendapat Anda di komentar. :) Kami juga akan sangat menghargai jika Anda melaporkan tiket untuk bug yang Anda temui di crbug.com.