乐闻世界logo
搜索文章和话题

How to get the size of a JavaScript object?

1个答案

1

In JavaScript, the size of an object is not a native property because JavaScript is a high-level language, and its memory management is handled by the garbage collector. However, if you wish to estimate the size of a JavaScript object, you can use the following methods:

1. JSON.stringify Method

The simplest method is to convert the object to a JSON string and measure the length of that string. This method provides a rough estimate of the object's size.

javascript
const obj = { name: 'Alice', age: 25, skills: ['JavaScript', 'React'] }; const jsonString = JSON.stringify(obj); const sizeInBytes = new TextEncoder().encode(jsonString).length; console.log(sizeInBytes); // Output the byte length of the string

The drawback is that it cannot account for properties not expressible in JSON, such as functions, undefined, or cyclic references.

2. Blob Object

If you want to measure the size of the object more precisely, you can convert the object to a Blob object and use its size property.

javascript
const obj = { name: 'Alice', age: 25, skills: ['JavaScript', 'React'] }; const blob = new Blob([JSON.stringify(obj)], {type: 'application/json'}); const sizeInBytes = blob.size; console.log(sizeInBytes); // Output the size of the Blob

This method is similar to JSON.stringify, but it provides the exact byte size of the Blob object.

3. Using Third-Party Libraries

Some third-party libraries like object-sizeof can help measure the size of an object more accurately:

javascript
import sizeof from 'object-sizeof'; const obj = { name: 'Alice', age: 25, skills: ['JavaScript', 'React'] }; const sizeInBytes = sizeof(obj); console.log(sizeInBytes); // Output the approximate byte size of the object

These libraries are often more complex, attempting to measure the size occupied by various types of properties within the object.

4. Manual Calculation

If you understand the memory allocation details of the JavaScript engine and know approximately how much space different types of values occupy in memory, you can attempt to manually calculate the size of the object. However, this method is complex, error-prone, and closely tied to the specific implementation of the JavaScript engine.

In summary, there is no official or standard method to obtain the exact size of a JavaScript object. Typically, we choose an estimation method based on the need to roughly quantify the object's size. If you require highly precise data, you may need to consider using specific tools or reading internal documentation of the JavaScript engine for more details.

2024年6月29日 12:07 回复

你的答案