Menentukan Saiz Objek JavaScript
Pengenalan
Menganggarkan penggunaan memori sesuatu Objek JavaScript boleh menjadi tugas yang mencabar. Dalam artikel ini, kami akan meneroka kaedah yang komprehensif untuk menentukan anggaran saiz objek dalam JavaScript, diilhamkan oleh pertanyaan terbaru untuk mendapatkan saiz objek JavaScript.
Mengatasi Masalah
Pertimbangkan kod JavaScript berikut yang mentakrifkan dua fungsi, Markah dan Pelajar, dan menjadikan pelajar baharu objek:
function Marks() { this.maxMarks = 100; } function Student() { this.firstName = "firstName"; this.lastName = "lastName"; this.marks = new Marks(); } var stud = new Student();
Menganggar Saiz Objek
JavaScript tidak mempunyai fungsi terbina dalam yang serupa dengan operator sizeof() dalam C . Walau bagaimanapun, kita boleh mencipta fungsi tersuai untuk menganggarkan saiz objek stud:
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; }
Fungsi ini merentasi objek secara rekursif, dengan mengambil kira saiz nilai primitif (4 bait untuk boolean, 8 bait untuk nombor) dan panjang rentetan dalam bait (darab dengan 2). Ia juga mengekalkan senarai objek untuk mengelakkan rekursi tak terhingga.
Kesimpulan
Menggunakan fungsi ini, anda boleh menganggarkan saiz mana-mana objek JavaScript tertentu, termasuk tatasusunan dan objek tersuai . Kaedah ini boleh berguna untuk mengoptimumkan penggunaan memori, terutamanya dalam aplikasi kritikal prestasi. Walaupun ia memberikan anggaran dan bukannya nilai yang tepat, ia menawarkan cerapan berharga tentang jejak memori objek dalam JavaScript.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menentukan anggaran saiz objek JavaScript dalam ingatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!