Skip to content

Commit 7e7385b

Browse files
committed
basic benchmarks added
1 parent 7d0a078 commit 7e7385b

File tree

4 files changed

+70
-2
lines changed

4 files changed

+70
-2
lines changed

benchmark/queues.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
let { queues } = require('./../index');
2+
let ptime = require('quick-ptime');
3+
4+
5+
// setup stacks
6+
let queue = new queues.Queue();
7+
let arrayQueue = new queues.ArrayQueue();
8+
9+
// enqueue 100,000 items into the queue
10+
ptime.setTime('queue100000');
11+
for(let i = 0; i < 100000; i++) {
12+
queue.enqueue('value');
13+
}
14+
console.log("Enqueue 100,000 Queue timing:", ptime.elapsedTime('queue100000').formatted);
15+
16+
ptime.setTime('arrayqueue100000');
17+
for(let i = 0; i < 100000; i++) {
18+
arrayQueue.enqueue('value');
19+
}
20+
console.log("Enqueue 100,000 Array Queue timing:", ptime.elapsedTime('arrayqueue100000').formatted);
21+
22+
// dequeue 100,000 items into the queue
23+
ptime.setTime('dqueue100000');
24+
for(let i = 0; i < 100000; i++) {
25+
queue.dequeue();
26+
}
27+
console.log("Dequeue 100,000 Queue timing:", ptime.elapsedTime('dqueue100000').formatted);
28+
29+
ptime.setTime('darrayqueue100000');
30+
for(let i = 0; i < 100000; i++) {
31+
arrayQueue.dequeue();
32+
}
33+
console.log("Dequeue 100,000 Array Queue timing:", ptime.elapsedTime('darrayqueue100000').formatted);

benchmark/stacks.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
let { stacks } = require('./../index');
2+
let ptime = require('quick-ptime');
3+
4+
5+
// setup stacks
6+
let stack = new stacks.Stack();
7+
let arrayStack = new stacks.ArrayStack();
8+
9+
// push 100,000 items onto the stack
10+
ptime.setTime('stack100000');
11+
for(let i = 0; i < 100000; i++) {
12+
stack.push('value');
13+
}
14+
console.log("Push 100,000 Stack timing:", ptime.elapsedTime('stack100000').formatted);
15+
16+
ptime.setTime('arraystack100000');
17+
for(let i = 0; i < 100000; i++) {
18+
arrayStack.push('value');
19+
}
20+
console.log("Push 100,000 Array Stack timing:", ptime.elapsedTime('arraystack100000').formatted);
21+
22+
23+
// pop 100,000 items off the stack
24+
ptime.setTime('pstack100000');
25+
for(let i = 0; i < 100000; i++) {
26+
stack.pop()
27+
}
28+
console.log("Pop 100,000 Stack timing:", ptime.elapsedTime('pstack100000').formatted);
29+
30+
ptime.setTime('parraystack100000');
31+
for(let i = 0; i < 100000; i++) {
32+
stack.pop()
33+
}
34+
console.log("Pop Array 100,000 Stack timing:", ptime.elapsedTime('parraystack100000').formatted);

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
"license": "MIT",
99
"private": false,
1010
"scripts": {
11-
"test": "npx mocha"
11+
"test": "npx mocha",
12+
"bench:stacks": "node benchmark/stacks.js",
13+
"bench:queues": "node benchmark/queues.js"
1214
},
1315
"devDependencies": {
1416
"mocha": "^5.2.0"

test/sample.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
var assert = require('assert');
2-
let ptime = require('quick-ptime');
32
const { stacks } = require('../index');
43

54
describe('Stack', function() {

0 commit comments

Comments
 (0)