-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
import { bench, run, group } from "mitata";
const SET_SIZE = 100_000;
const ITER_COUNT = 100_000;
/**
* @param size {number}
* @returns {Set<{ n: number }>}
*/
function sampleSet(size) {
return new Set(Array.from({ length: size }, (_, i) => ({ n: i })));
}
group(`a.size = ${SET_SIZE}, 1 time`, () => {
const a = sampleSet(SET_SIZE);
bench("[...a]", () => {
[...a];
});
bench("Array.from(a)", () => {
Array.from(a);
});
bench("new Set(a)", () => {
new Set(a);
});
});
group(`a.size = 1, ${ITER_COUNT} times`, () => {
const a = sampleSet(1);
bench("[...a]", () => {
for (let i = 0; i < ITER_COUNT; i++) {
[...a];
}
});
bench("Array.from(a)", () => {
for (let i = 0; i < ITER_COUNT; i++) {
Array.from(a);
}
});
bench("new Set(a)", () => {
for (let i = 0; i < ITER_COUNT; i++) {
new Set(a);
}
});
});
await run();