Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.
/ lru-ram Public archive

Calculate the size of your LRU cache in bytes

License

Notifications You must be signed in to change notification settings

Kikobeats/lru-ram

Repository files navigation

lru-ram

Last version Build Status Coverage Status Dependency status Dev Dependencies Status NPM Status Donate

Calculate the size of your LRU cache in bytes.

I created this tiny module for be easy connect with whatever LRU implementation.

An LRU needs a max number of elements to keep inside the cache.

The idea behind this module is provide an estimate of this value based on a representative element to keep inside the cache and the quantity of memory (in bytes).

Install

$ npm install lru-ram --save

Usage

const lruRam = require('lru-ram')
const os = require('os')

// total bytes for your cache
const totalBytes = os.totalmem() * 0.8

// a representative element
const value = { foo: 'bar', hello: 'world' }

// the library calculate the total of items
const size = lruRam(value, totalBytes)

Then, you can use the calculated number in your favorite LRU implementation, for example:

const lruRam = require('lru-ram')
const LRU = require('lru')
const os = require('os')

// total bytes for your cache
const totalBytes = os.totalmem() * 0.8

// a representative element
const value = { foo: 'bar', hello: 'world' }

// the library calculate the total of items
const size = lruRam(value, totalBytes)
const cache = new LRU(size)

You can specify quantity of bytes in human bytes as well:

const lruRam = require('lru-ram')
const value = { foo: 'bar', hello: 'world' }
const size = lruRam(value, '2GB')

API

lruRam(value, totalBytes)

value

Required
Type: object

A representative element of your cache.

We use this value for calculate the size in bytes per each element.

totalBytes

Required
Type: Integer

Total of bytes available for the cache.

License

MIT © Kiko Beats.

About

Calculate the size of your LRU cache in bytes

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •