Tons of Solutions Engineering work done today for the rest of the CS team! Headway, Howard Hanna, Engels, Brighton, etc. Also completed Datasnippers auth flow and worked on Anthology's script. Cloned Anthology's courses (900..) and will clone Full Story on Monday.
This commit is contained in:
78
Scripts/node_modules/fast-fifo/README.md
generated
vendored
Normal file
78
Scripts/node_modules/fast-fifo/README.md
generated
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
# 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
|
||||
|
||||
``` js
|
||||
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
|
||||
Reference in New Issue
Block a user