首页 > web前端 > js教程 > 如何确定 JavaScript 对象在内存中的大致大小?

如何确定 JavaScript 对象在内存中的大致大小?

DDD
发布: 2024-11-16 10:17:03
原创
199 人浏览过

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

确定 JavaScript 对象的大小

简介

估计 JavaScript 对象的内存使用量JavaScript 对象可能是一项具有挑战性的任务。在本文中,受最近有关获取 JavaScript 对象大小的查询的启发,我们将探索一种在 JavaScript 中确定对象大致大小的综合方法。

解决问题

考虑以下 JavaScript 代码,它定义了两个函数 Marks 和 Student,并实例化了一个新的 Student object:

function Marks() {
  this.maxMarks = 100;
}

function Student() {
  this.firstName = "firstName";
  this.lastName = "lastName";
  this.marks = new Marks();
}

var stud = new Student();
登录后复制

估计对象大小

JavaScript 缺乏类似于 C 中 sizeof() 运算符的内置函数。但是,我们可以设计一个自定义函数来估计 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;
}
登录后复制

该函数递归遍历对象,同时考虑原始值的大小(布尔值 4 字节,布尔值 8 字节) number)和字符串长度(以字节为单位)(乘以 2)。它还维护一个对象列表以防止无限递归。

结论

使用此函数,您可以近似任何给定 JavaScript 对象的大小,包括数组和自定义对象。此方法对于优化内存使用非常有用,特别是在性能关键型应用程序中。虽然它提供的是估计值而不是精确值,但它提供了有关 JavaScript 中对象的内存占用的宝贵见解。

以上是如何确定 JavaScript 对象在内存中的大致大小?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板