Menentukan Jejak Memori Objek JavaScript
Dalam JavaScript, memahami penggunaan memori objek adalah penting untuk mengoptimumkan prestasi dan mengelakkan kebocoran memori. Artikel ini menangani pertanyaan untuk mendapatkan saiz objek JavaScript, menyelidiki penyelesaian yang menganggarkan anggaran memori yang diduduki oleh objek tersebut.
Menentukan Saiz Objek
Dalam JavaScript, tiada fungsi terbina dalam yang direka khusus untuk menentukan saiz objek. Walau bagaimanapun, teknik biasa melibatkan lelaran melalui sifat objek dan mengira saiz setiap nilai primitif dan rujukan objek. Anggaran ini mengambil kira saiz jenis data, seperti boolean (4 bait), rentetan (panjang * 2 bait) dan nombor (8 bait).
Melaksanakan Penganggar Saiz Objek
Untuk menganggarkan saiz objek yang diberikan, fungsi rekursif boleh digunakan:
function roughSizeOfObject(object) { const objectList = []; const stack = [object]; let bytes = 0; while (stack.length) { const value = stack.pop(); switch (typeof value) { case 'boolean': bytes += 4; break; case 'string': bytes += value.length * 2; break; case 'number': bytes += 8; break; case 'object': if (!objectList.includes(value)) { objectList.push(value); for (const prop in value) { if (value.hasOwnProperty(prop)) { stack.push(value[prop]); } } } break; } } return bytes; }
Contoh
Menggunakan contoh yang disediakan:
function Marks() { this.maxMarks = 100; } function Student() { this.firstName = "firstName"; this.lastName = "lastName"; this.marks = new Marks(); } const stud = new Student(); const sizeInBytes = roughSizeOfObject(stud); console.log(`Object size: ${sizeInBytes} bytes`);
Dalam senario ini, fungsi roughSizeOfObject menganggarkan anggaran penggunaan memori objek stud, termasuk sifatnya dan objek bersarang.
Penghadan
Adalah penting untuk ambil perhatian bahawa teknik ini menyediakan anggaran dan mungkin tidak mengambil kira semua peruntukan memori yang berkaitan dengan objek. Selain itu, overhed yang dikaitkan dengan rujukan dan penutupan objek boleh memperkenalkan kerumitan tambahan dalam menentukan saiz dengan tepat.
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Mengira Anggaran Jejak Memori Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!