als-sizeof
v3.0.0
Published
A utility function to estimate the memory size of objects in JavaScript, compatible with both Node.js and browser environments.
Downloads
36
Maintainers
Readme
als-sizeof
als-sizeof
is a JavaScript utility function designed to estimate the memory size of objects, including buffers. It is compatible with both Node.js and browser environments, making it a versatile tool for memory usage estimation in various JavaScript applications.
Chang log for v3.0
- Separated versions for nodejs and browser
- Added Map and Set count support
formatBytes
now is a property ofsizeof
Features
- Estimates the size of objects in bytes, including special handling for buffers in Node.js and
ArrayBuffer
in browsers. - Compatible with Node.js and browser environments.
- Accounts for different data types like strings, numbers, booleans, objects, and buffers.
- Provides a pretty formatting option to display the size in a more readable format.
Installation
You can install als-sizeof
using npm:
npm install als-sizeof
Usage
To use als-sizeof
, simply import it into your JavaScript project and pass the object you want to estimate the size of:
const sizeof = require("als-sizeof");
const obj = {
key1: "value1",
key2: 123,
key3: true,
};
const size = sizeof(obj);
console.log(`Size of object: ${size} bytes`);
console.log(`Size of object: ${sizeof.formatBytes(size)}`);
Advanced Usage
als-sizeof
also supports an advanced feature where you can pass a WeakSet
as a second argument to the sizeof
function. This WeakSet
(referred to as objList
) is used to keep track of the objects that have already been accounted for in size calculation. This is particularly useful for handling objects with circular references or when the same object instance appears multiple times in different parts of your data structure. To use this feature, simply create a WeakSet
and pass it as the second argument to sizeof
:
const sizeof = require("als-sizeof");
const obj = {
key1: "value1",
key2: {
key3: "value3"
}
};
obj.key2.key4 = obj; // Circular reference
const objList = new WeakSet();
const size = sizeof(obj, objList);
console.log(`Size of object: ${size} bytes`);
Browser usage
In the browser, include the script and use it similarly for ArrayBuffer
:
<script src="node_modules/als-sizeof/sizeof.js"></script>
<script>
const arrayBuffer = new ArrayBuffer(1024); // 1024 bytes
const size = sizeof(arrayBuffer);
console.log(`Size of ArrayBuffer: ${sizeof.formatBytes(size)} bytes`);
</script>