Reuse typed arrays
Switch branches/tags
Nothing to show
Latest commit 1777d9e Sep 27, 2014 @mikolalysenko 1.1.0
Failed to load latest commit information.
test add support for DataView Sep 27, 2014
.gitignore adding files May 13, 2013
.travis.yml added testling and travis-ci badges May 28, 2014
LICENSE adding LICENSE May 14, 2013 add support for DataView Sep 27, 2014
package.json 1.1.0 Sep 27, 2014
pool.js add support for DataView Sep 27, 2014


A global pool for typed arrays.

testling badge

build status


var pool = require("typedarray-pool")

//Allocate a buffer with at least 128 floats
var f = pool.malloc(128, "float")

// ... do stuff ...

//When done, release buffer


npm install typedarray-pool


var pool = require("typedarray-pool")

pool.malloc(n[, dtype])

Allocates a typed array (or ArrayBuffer) with at least n elements.

  • n is the number of elements in the array

  • dtype is the data type of the array to allocate. Must be one of:

    • "uint8"
    • "uint16"
    • "uint32"
    • "int8"
    • "int16"
    • "int32"
    • "float"
    • "float32"
    • "double"
    • "float64"
    • "arraybuffer"
    • "data"
    • "uint8_clamped"
    • "buffer"

Returns A typed array with at least n elements in it. If dtype is undefined, an ArrayBuffer is returned.

Note You can avoid the dispatch by directly calling one of the following methods:

  • pool.mallocUint8
  • pool.mallocUint16
  • pool.mallocUint32
  • pool.mallocInt8
  • pool.mallocInt16
  • pool.mallocInt32
  • pool.mallocFloat
  • pool.mallocDouble
  • pool.mallocArrayBuffer
  • pool.mallocDataView
  • pool.mallocUint8Clamped
  • pool.mallocBuffer

Returns the array back to the pool.

  • array The array object to return to the pool.

Note You can speed up the method if you know the type of array before hand by calling one of the following:

  • pool.freeUint8
  • pool.freeUint16
  • pool.freeUint32
  • pool.freeInt8
  • pool.freeInt16
  • pool.freeInt32
  • pool.freeFloat
  • pool.freeDouble
  • pool.freeArrayBuffer
  • pool.freeDataView
  • pool.freeUint8Clamped
  • pool.freeBuffer


Removes all references to cached arrays. Use this when you are done with the pool to return all the cached memory to the garbage collector.


(c) 2014 Mikola Lysenko. MIT License