确定 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中文网其他相关文章!