Skip to content

Commit 94d77c1

Browse files
committed
update
1 parent 1b1f7ab commit 94d77c1

File tree

1 file changed

+18
-29
lines changed

1 file changed

+18
-29
lines changed

test/benchmark/tree.test.js

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
1-
const INPUT_COUNT = 1e8;
1+
const INPUT_COUNT = 1e6;
22
const INPUT_MAX = 1e6;
33
const TEST_COUNT = 5;
44

5-
function time() {
6-
return process.hrtime();
7-
};
8-
9-
function performance(start, end) {
10-
return ~~(((end[0] * 1e9 + end[1]) - (start[0] * 1e9 + start[1])) / 1e6)
11-
}
12-
135
function Random(max) {
14-
return ~~(Math.random() * max);
6+
return ~~(Math.random() * max);
157
}
168

179
function Random10() {
@@ -47,11 +39,10 @@ function BenchmarkTest(trees, testcount, inputcount, inputmax) {
4739
let results = {};
4840
trees.forEach((tree, index) => {
4941
tree.desc = tree.desc || index;
50-
results[tree.desc] = {
51-
MIX_SUM: 0,
52-
}
42+
results[tree.desc] = {}
5343
});
5444
const input = randomArray(inputcount, inputmax);
45+
console.log(`benchmark start :${inputcount} ${inputmax}`);
5546
while (testcount) {
5647
const ops = randomOp(inputcount);
5748
for (let n = 0; n < trees.length; n++) {
@@ -60,29 +51,28 @@ function BenchmarkTest(trees, testcount, inputcount, inputmax) {
6051
desc
6152
} = trees[n];
6253
let result = results[desc];
63-
tree = new Tree()
54+
tree = new Tree();
6455
// BEGIN: MIX
56+
console.time(desc);
6557
let {
66-
cost,
67-
height,
68-
size
58+
height
6959
} = testOnce(input, ops, Tree)
70-
result[testcount] = cost + "(" + height + "," + size + ")";
71-
// result[count] = cost;
72-
result.MIX_SUM += cost;
60+
console.timeEnd(desc);
61+
result[testcount] = height;
7362
// END: MIX
7463
}
64+
console.table(results);
7565
testcount--;
7666
}
7767
return results;
7868
}
7969

8070

8171
function testOnce(input, ops, Tree) {
82-
tree = new Tree()
72+
tree = new Tree();
73+
let length = input.length;
8374
// BEGIN: MIX
84-
start = time();
85-
for (let j = 0; j < INPUT_COUNT; j++) {
75+
for (let j = 0; j < length; j++) {
8676
let op = ops[j];
8777
let value = input[j];
8878
if (op === 1) {
@@ -93,10 +83,7 @@ function testOnce(input, ops, Tree) {
9383
tree.insert(value);
9484
}
9585
}
96-
end = time();
97-
cost = performance(start, end);
9886
return {
99-
cost,
10087
height: tree.height,
10188
size: tree.size
10289
}
@@ -134,7 +121,7 @@ class SetFakeTree {
134121
// TEST:
135122
let AVLTree = require("../../src/tree/AVLTree");
136123
let BinarySearchTree = require("../../src/tree/BinarySearchTree");
137-
let result = BenchmarkTest([{
124+
let trees = [{
138125
Tree: SetFakeTree,
139126
desc: "Set"
140127
}, {
@@ -143,5 +130,7 @@ let result = BenchmarkTest([{
143130
}, {
144131
Tree: BinarySearchTree,
145132
desc: 'BinarySearchTree'
146-
}], TEST_COUNT, INPUT_COUNT, INPUT_MAX)
147-
console.table(result)
133+
}]
134+
135+
BenchmarkTest(trees, TEST_COUNT, INPUT_COUNT, INPUT_MAX)
136+
// BenchmarkTest(trees, TEST_COUNT, INPUT_COUNT * 10, INPUT_MAX)

0 commit comments

Comments
 (0)