Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah saya boleh menentukan anggaran saiz objek JavaScript dalam ingatan?

Bagaimanakah saya boleh menentukan anggaran saiz objek JavaScript dalam ingatan?

DDD
DDDasal
2024-11-16 10:17:03127semak imbas

How can I determine the approximate size of a JavaScript object in memory?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn