Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 15bdfda

Browse filesBrowse files
committed
chore(bench): migrate to vitest
1 parent e7bfac6 commit 15bdfda
Copy full SHA for 15bdfda
Expand file treeCollapse file tree

22 files changed

+389
-414
lines changed

‎bench/async.bench.ts

Copy file name to clipboard
+41Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { cpus } from 'node:os'
2+
import { createRequire } from 'node:module'
3+
4+
import { bench } from 'vitest'
5+
6+
const require = createRequire(import.meta.url)
7+
8+
const {
9+
benchAsyncTask,
10+
benchThreadsafeFunction,
11+
benchTokioFuture,
12+
} = require('./index.node')
13+
14+
const buffer = Buffer.from('hello 🚀 rust!')
15+
16+
const ALL_THREADS = Array.from({ length: cpus().length })
17+
18+
bench('spawn task', async () => {
19+
await Promise.all(ALL_THREADS.map(() => benchAsyncTask(buffer)))
20+
})
21+
22+
bench('ThreadSafeFunction', async () => {
23+
await Promise.all(
24+
ALL_THREADS.map(
25+
() =>
26+
new Promise<number | undefined>((resolve, reject) => {
27+
benchThreadsafeFunction(buffer, (err?: Error, value?: number) => {
28+
if (err) {
29+
reject(err)
30+
} else {
31+
resolve(value)
32+
}
33+
})
34+
}),
35+
),
36+
)
37+
})
38+
39+
bench('Tokio future to Promise', async () => {
40+
await Promise.all(ALL_THREADS.map(() => benchTokioFuture(buffer)))
41+
})

‎bench/async.ts

Copy file name to clipboardExpand all lines: bench/async.ts
-42Lines changed: 0 additions & 42 deletions
This file was deleted.

‎bench/bench.ts

Copy file name to clipboardExpand all lines: bench/bench.ts
-43Lines changed: 0 additions & 43 deletions
This file was deleted.

‎bench/buffer.bench.ts

Copy file name to clipboard
+22Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { createRequire } from 'node:module'
2+
3+
import { bench } from 'vitest'
4+
5+
const require = createRequire(import.meta.url)
6+
7+
const { benchCreateBuffer } = require('./index.node')
8+
9+
function createBuffer() {
10+
const buf = Buffer.allocUnsafe(1024)
11+
buf[0] = 1
12+
buf[1] = 2
13+
return buf
14+
}
15+
16+
bench('napi-rs', () => {
17+
benchCreateBuffer()
18+
})
19+
20+
bench('JavaScript', () => {
21+
createBuffer()
22+
})

‎bench/buffer.ts

Copy file name to clipboardExpand all lines: bench/buffer.ts
-23Lines changed: 0 additions & 23 deletions
This file was deleted.

‎bench/create-array.bench.ts

Copy file name to clipboard
+23Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { createRequire } from 'node:module'
2+
3+
import { bench } from 'vitest'
4+
5+
const require = createRequire(import.meta.url)
6+
7+
const {
8+
createArrayJson,
9+
createArray,
10+
createArrayWithSerdeTrait,
11+
} = require('./index.node')
12+
13+
bench('createArrayJson', () => {
14+
JSON.parse(createArrayJson())
15+
})
16+
17+
bench('create array for loop', () => {
18+
createArray()
19+
})
20+
21+
bench('create array with serde trait', () => {
22+
createArrayWithSerdeTrait()
23+
})

‎bench/create-array.ts

Copy file name to clipboardExpand all lines: bench/create-array.ts
-25Lines changed: 0 additions & 25 deletions
This file was deleted.

‎bench/get-array-from-js.bench.ts

Copy file name to clipboard
+25Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { createRequire } from 'node:module'
2+
3+
import { bench } from 'vitest'
4+
5+
const require = createRequire(import.meta.url)
6+
7+
const {
8+
getArrayFromJson,
9+
getArrayFromJsArray,
10+
getArrayWithForLoop,
11+
} = require('./index.node')
12+
13+
const FIXTURE = Array.from({ length: 1000 }).fill(42)
14+
15+
bench('get array from json string', () => {
16+
getArrayFromJson(JSON.stringify(FIXTURE))
17+
})
18+
19+
bench('get array from serde', () => {
20+
getArrayFromJsArray(FIXTURE)
21+
})
22+
23+
bench('get array with for loop', () => {
24+
getArrayWithForLoop(FIXTURE)
25+
})

‎bench/get-array-from-js.ts

Copy file name to clipboardExpand all lines: bench/get-array-from-js.ts
-27Lines changed: 0 additions & 27 deletions
This file was deleted.

‎bench/get-set-property.bench.ts

Copy file name to clipboard
+51Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { createRequire } from 'node:module'
2+
3+
import { bench } from 'vitest'
4+
5+
const require = createRequire(import.meta.url)
6+
7+
const { TestClass } = require('./index.node')
8+
9+
function createClass() {
10+
const testObject = new TestClass()
11+
12+
Object.defineProperty(testObject, '_miterLimit', {
13+
value: 10,
14+
configurable: false,
15+
enumerable: false,
16+
writable: true,
17+
})
18+
19+
Object.defineProperty(testObject, '_lineJoin', {
20+
value: 'miter',
21+
configurable: false,
22+
enumerable: false,
23+
writable: true,
24+
})
25+
26+
return testObject
27+
}
28+
29+
bench('Get Set from native#u32', () => {
30+
const o = createClass()
31+
o.miterNative
32+
o.miterNative = 1
33+
})
34+
35+
bench('Get Set from JavaScript#u32', () => {
36+
const o = createClass()
37+
o.miter
38+
o.miter = 1
39+
})
40+
41+
bench('Get Set from native#string', () => {
42+
const o = createClass()
43+
o.lineJoinNative
44+
o.lineJoinNative = 'bevel'
45+
})
46+
47+
bench('Get Set from JavaScript#string', () => {
48+
const o = createClass()
49+
o.lineJoin
50+
o.lineJoin = 'bevel'
51+
})

‎bench/get-set-property.ts

Copy file name to clipboardExpand all lines: bench/get-set-property.ts
-52Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.