• Login
    • Report A Bug
    • System Information
    • System Tests
    • System Policies
    • Code Documentation
    • Occam Source Code
    • Web Client Source Code
    • About Occam
    • Acknowledgements
    • Guides / Documentation
    • Publications

translation missing: en.flash.saving
translation missing: en.flash.error
  • Bibliography Data
  • Metadata
resource
  • git
    https://github.com/mafintosh/fast-fifo.git Source Repository
    QmRnYUufH4FNncBoJAgqK11vwHD1Jga1xYjRajcnCbR9AV
    16f48e2a25e74d95d50c0922a16922c9016e8a02
      QmRnYUufH4FNncBoJAgqK11vwHD1Jga1xYjRajcnCbR9AV
      16f48e2a25e74d95d50c0922a16922c9016e8a02

      • Details
      • Files
      • History
        • Source

          https://github.com/mafintosh/fast-fifo.git

          fast-fifo

          A fast fifo implementation similar to the one powering nextTick in Node.js core

          npm install fast-fifo
          

          Uses a linked list of growing fixed sized arrays to implement the FIFO to avoid allocating a wrapper object for each item.

          Usage

          const FIFO = require('fast-fifo')
          
          const q = new FIFO()
          
          q.push('hello')
          q.push('world')
          
          q.shift() // returns hello
          q.shift() // returns world
          

          API

          q = new FIFO()

          Create a new FIFO.

          q.push(value)

          Push a value to the FIFO. value can be anything other than undefined.

          value = q.shift()

          Return the oldest value from the FIFO.

          q.clear()

          Remove all values from the FIFO.

          bool = q.isEmpty()

          Returns true if the FIFO is empty and false otherwise.

          value = q.peek()

          Return the oldest value from the FIFO without shifting it out.

          len = q.length

          Get the number of entries remaining in the FIFO.

          Benchmarks

          Included in bench.js is a simple benchmark that benchmarks this against a simple linked list based FIFO.

          On my machine the benchmark looks like this:

          fifo bulk push and shift: 2881.508ms
          fifo individual push and shift: 3248.437ms
          fast-fifo bulk push and shift: 1606.972ms
          fast-fifo individual push and shift: 1328.064ms
          fifo bulk push and shift: 3266.902ms
          fifo individual push and shift: 3320.944ms
          fast-fifo bulk push and shift: 1858.307ms
          fast-fifo individual push and shift: 1516.983ms
          

          YMMV

          License

          MIT

          Related

          • maintainer

            npm

          Share

          • URL

            Copy
          • Embed Link

            Copy
          • QR Code

        • JavaScript must be enabled.

          There was an error retrieving this content.

          The content could not be found.

        • JavaScript must be enabled.

          There was an error retrieving this content.

          The content could not be found.

        Confirm
        Do you wish to proceed?

        Confirm message?