Pembaruan 2015
Kembali pada tahun 2012 ini tidak mungkin, jika Anda ingin mendukung semua browser utama yang sedang digunakan. Sayangnya, saat ini fitur ini masih hanya untuk Chrome (ekstensi non-standar window.performance
).
window.performance.memory
Dukungan browser: Chrome 6+
Jawaban 2012
Apakah ada cara untuk mengetahui berapa banyak memori yang digunakan oleh halaman web, atau oleh aplikasi jquery saya? Saya mencari solusi runtime (bukan hanya alat pengembang), sehingga aplikasi saya dapat menentukan tindakan berdasarkan penggunaan memori di browser pengguna.
Jawaban yang sederhana namun benar adalah tidak . Tidak semua browser memaparkan data seperti itu kepada Anda. Dan saya pikir Anda harus membuang ide itu hanya karena kompleksitas dan ketidakakuratan dari solusi "buatan tangan" dapat menimbulkan lebih banyak masalah daripada memecahkannya.
Menghitung elemen DOM atau ukuran dokumen mungkin merupakan perkiraan yang baik, tetapi bisa jadi sangat tidak akurat karena tidak akan menyertakan pengikatan peristiwa, data (), plugin, dan struktur data dalam memori lainnya.
Jika Anda benar-benar ingin tetap berpegang pada ide Anda, Anda harus memisahkan konten tetap dan dinamis.
Konten tetap tidak bergantung pada tindakan pengguna (memori yang digunakan oleh file skrip, plugin, dll.)
Segala sesuatu yang lain dianggap dinamis dan harus menjadi fokus utama Anda saat menentukan batas Anda.
Tetapi tidak ada cara mudah untuk meringkasnya. Anda bisa menerapkan pelacakan sistem yang mengumpulkan semua informasi ini. Semua operasi harus memanggil metode pelacakan yang sesuai. misalnya:
Bungkus atau timpa jQuery.data
metode untuk menginformasikan pelacakan sistem tentang alokasi data Anda.
Bungkus manipulasi html sehingga menambah atau menghapus konten juga terlacak ( innerHTML.length
merupakan perkiraan terbaik).
Jika Anda menyimpan objek dalam memori yang besar, mereka juga harus dipantau.
Adapun pengikatan acara, Anda harus menggunakan delegasi acara dan kemudian itu juga bisa dianggap sebagai faktor yang agak tetap.
Aspek lain yang membuat Anda sulit memperkirakan kebutuhan memori dengan benar adalah browser yang berbeda mungkin mengalokasikan memori secara berbeda (untuk objek Javascript dan elemen DOM).