repositories
/
benchmarks-js.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into combined-prs-branch
[benchmarks-js.git]
/
quick-select.mjs
diff --git
a/quick-select.mjs
b/quick-select.mjs
index 09251a3ce395b1c43f70768f7a7d73262da56d61..5fc3ef379d9ee7af6e82c5226f25cfb3d36d4f51 100644
(file)
--- a/
quick-select.mjs
+++ b/
quick-select.mjs
@@
-1,5
+1,6
@@
-import Benchmark from 'benny'
-import { generateRandomInteger } from './benchmark-utils.mjs'
+import { randomInt } from 'node:crypto'
+
+import { bench, group, run } from 'tatami-ng'
/**
* @param numberOfWorkers
/**
* @param numberOfWorkers
@@
-12,7
+13,7
@@
function generateRandomTasksMap (
) {
const tasksArray = []
for (let i = 0; i < numberOfWorkers; i++) {
) {
const tasksArray = []
for (let i = 0; i < numberOfWorkers; i++) {
- const task = [i,
generateRandomInteger
(maxNumberOfTasksPerWorker)]
+ const task = [i,
randomInt
(maxNumberOfTasksPerWorker)]
tasksArray.push(task)
}
return new Map(tasksArray)
tasksArray.push(task)
}
return new Map(tasksArray)
@@
-25,8
+26,8
@@
const tasksMap = generateRandomTasksMap(60, 20)
* @returns
*/
function loopSelect (tasksMap) {
* @returns
*/
function loopSelect (tasksMap) {
- let minValue = Infinity
let minKey
let minKey
+ let minValue = Number.POSITIVE_INFINITY
for (const [key, value] of tasksMap) {
if (value === 0) {
return key
for (const [key, value] of tasksMap) {
if (value === 0) {
return key
@@
-63,7
+64,7
@@
const defaultPivotIndexSelect = (leftIndex, rightIndex) => {
}
const randomPivotIndexSelect = (leftIndex, rightIndex) => {
}
const randomPivotIndexSelect = (leftIndex, rightIndex) => {
- return
generateRandomInteger(rightIndex, lef
tIndex)
+ return
randomInt(leftIndex, righ
tIndex)
}
/**
}
/**
@@
-227,43
+228,27
@@
function quickSelectRecursionRandomPivot (tasksMap) {
)
}
)
}
-Benchmark.suite(
- 'Quick select',
- Benchmark.add('Loop select', () => {
+group('Quick select', () => {
+ bench('Loop select', () => {
loopSelect(tasksMap)
loopSelect(tasksMap)
- })
,
-
Benchmark.add
('Array sort select', () => {
+ })
+
bench
('Array sort select', () => {
arraySortSelect(tasksMap)
arraySortSelect(tasksMap)
- })
,
-
Benchmark.add
('Quick select loop', () => {
+ })
+
bench
('Quick select loop', () => {
quickSelectLoop(tasksMap)
quickSelectLoop(tasksMap)
- })
,
-
Benchmark.add
('Quick select loop with random pivot', () => {
+ })
+
bench
('Quick select loop with random pivot', () => {
quickSelectLoopRandomPivot(tasksMap)
quickSelectLoopRandomPivot(tasksMap)
- })
,
-
Benchmark.add
('Quick select recursion', () => {
+ })
+
bench
('Quick select recursion', () => {
quickSelectRecursion(tasksMap)
quickSelectRecursion(tasksMap)
- })
,
-
Benchmark.add
('Quick select recursion with random pivot', () => {
+ })
+
bench
('Quick select recursion with random pivot', () => {
quickSelectRecursionRandomPivot(tasksMap)
quickSelectRecursionRandomPivot(tasksMap)
- }),
- Benchmark.cycle(),
- Benchmark.complete(),
- Benchmark.save({
- file: 'quick-select',
- format: 'json',
- details: true
- }),
- Benchmark.save({
- file: 'quick-select',
- format: 'chart.html',
- details: true
- }),
- Benchmark.save({
- file: 'quick-select',
- format: 'table.html',
- details: true
})
})
-).catch((err) => {
- console.error(err)
+})
+
+await run({
+ units: true,
})
})