Skip to content

Commit f5ab119

Browse files
committed
chore: upgrade benchs and docs
1 parent 5768a5c commit f5ab119

File tree

6 files changed

+361
-162
lines changed

6 files changed

+361
-162
lines changed

.vscode/settings.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

README.md

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -109,17 +109,39 @@ const uncompressedBuffer = await uncompress(compressedBuffer)
109109
```ts
110110
(data: Buffer | string | ArrayBuffer | Uint8Array, dict?: string | Buffer) => Buffer
111111
```
112+
#### `compressFrameSync`
113+
114+
```ts
115+
(data: Buffer | string | ArrayBuffer | Uint8Array) => Buffer
116+
```
117+
118+
#### `decompressFrameSync`
119+
120+
```ts
121+
(data: Buffer | string | ArrayBuffer | Uint8Array) => Buffer
122+
```
123+
#### `compressFrame`
124+
125+
```ts
126+
(data: Buffer | string | ArrayBuffer | Uint8Array) => Promise<Buffer>
127+
```
128+
129+
#### `decompressFrame`
130+
131+
```ts
132+
(data: Buffer | string | ArrayBuffer | Uint8Array) => Promise<Buffer>
133+
```
134+
112135

113136
## Performance
114137

115138
### Hardware
116139

117140
Benchmarks runs on the following hardware:
118141

119-
- Processor Name: i9 9900K
120-
- Total Number of Cores: 8
121-
- Hyper-Threading Technology: Enabled
122-
- Memory: 32 GB
142+
- Processor Name: M4 pro
143+
- Total Number of Cores: 12
144+
- Memory: 24GB
123145

124146
### Benchmark
125147

@@ -128,45 +150,50 @@ Running "Compress" suite...
128150
Progress: 100%
129151

130152
lz4:
131-
911 ops/s, ±18.64% | 54.68% slower
153+
7 355 ops/s, ±1.73% | 0.39% slower
154+
155+
lz4 dict:
156+
6 375 ops/s, ±0.29% | 13.66% slower
132157

133158
snappy:
134-
2 010 ops/s, ±19.23% | fastest
159+
7 384 ops/s, ±0.53% | fastest
135160

136161
gzip:
137-
78 ops/s, ±18.76% | 96.12% slower
162+
444 ops/s, ±0.50% | 93.99% slower
138163

139164
deflate:
140-
118 ops/s, ±20.42% | 94.13% slower
165+
442 ops/s, ±0.62% | 94.01% slower
141166

142167
brotli:
143-
6 ops/s, ±0.21% | slowest, 99.7% slower
168+
6 ops/s, ±0.73% | slowest, 99.92% slower
144169

145-
Finished 5 cases!
170+
Finished 6 cases!
146171
Fastest: snappy
147172
Slowest: brotli
148173
Running "Decompress" suite...
149174
Progress: 100%
150175

151176
lz4:
152-
9 425 ops/s, ±12.50% | fastest
177+
19 095 ops/s, ±1.51% | fastest
178+
179+
lz4 dict:
180+
17 644 ops/s, ±1.51% | 7.6% slower
153181

154182
snappy:
155-
3 900 ops/s, ±13.39% | 58.62% slower
183+
14 424 ops/s, ±0.50% | 24.46% slower
156184

157185
gzip:
158-
823 ops/s, ±20.48% | slowest, 91.27% slower
186+
2 442 ops/s, ±0.60% | 87.21% slower
159187

160188
deflate:
161-
1 350 ops/s, ±12.52% | 85.68% slower
189+
2 467 ops/s, ±0.61% | 87.08% slower
162190

163191
brotli:
164-
979 ops/s, ±11.55% | 89.61% slower
192+
1 659 ops/s, ±0.43% | slowest, 91.31% slower
165193

166-
Finished 5 cases!
194+
Finished 6 cases!
167195
Fastest: lz4
168-
Slowest: gzip
169-
Done in 61.20s.
196+
Slowest: brotli
170197
```
171198

172199
<!-- CONTRIBUTING -->

benchmark/bench.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { readFileSync } from 'fs'
2+
import { fileURLToPath } from 'node:url'
23
import { join } from 'path'
34
import { promisify } from 'util'
45
import {
@@ -25,8 +26,8 @@ const gunzipAsync = promisify(gunzip)
2526
const inflateAsync = promisify(inflate)
2627
const brotliDecompressAsync = promisify(brotliDecompress)
2728

28-
const FIXTURE = readFileSync(join(__dirname, '..', 'yarn.lock'))
29-
const FIXTURE_DICT = readFileSync(join(__dirname, '..', '__test__/dict.bin'))
29+
const FIXTURE = readFileSync(join(fileURLToPath(import.meta.url), '..', '..', 'yarn.lock'))
30+
const FIXTURE_DICT = readFileSync(join(fileURLToPath(import.meta.url), '..', '..', '__test__/dict.bin'))
3031
const LZ4_COMPRESSED_FIXTURE = Buffer.from(compressSync(FIXTURE))
3132
const SNAPPY_COMPRESSED_FIXTURE = Buffer.from(snappy.compressSync(FIXTURE))
3233
const GZIP_FIXTURE = gzipSync(FIXTURE)

package.json

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
},
5757
"scripts": {
5858
"artifacts": "napi artifacts --output-dir artifacts --npm-dir ./npm",
59-
"bench": "node -r @swc-node/register benchmark/bench.ts",
59+
"bench": "node --import @oxc-node/core/register benchmark/bench.ts",
6060
"build": "napi build --platform --release",
6161
"build:debug": "napi build --platform",
6262
"format": "run-p format:source format:rs format:toml",
@@ -72,7 +72,7 @@
7272
},
7373
"devDependencies": {
7474
"@napi-rs/cli": "^3.1.5",
75-
"@swc-node/register": "^1.6.8",
75+
"@oxc-node/core": "^0.0.32",
7676
"@swc/core": "^1.3.96",
7777
"@taplo/cli": "^0.7.0",
7878
"@types/node": "^24.3.0",
@@ -91,7 +91,7 @@
9191
"npm-run-all2": "^6.2.2",
9292
"prettier": "^3.3.3",
9393
"pretty-bytes": "^6.1.1",
94-
"snappy": "^7.2.2",
94+
"snappy": "^7.3.2",
9595
"table": "^6.8.2",
9696
"typescript": "^5.5.4"
9797
},
@@ -114,11 +114,12 @@
114114
]
115115
},
116116
"ava": {
117-
"require": [
118-
"@swc-node/register"
119-
],
120-
"extensions": [
121-
"ts"
117+
"extensions": {
118+
"ts": "module"
119+
},
120+
"nodeArguments": [
121+
"--import",
122+
"@oxc-node/core/register"
122123
],
123124
"timeout": "2m",
124125
"workerThreads": false,

tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"compilerOptions": {
3-
"target": "ES2018",
3+
"target": "esnext",
44
"strict": true,
55
"moduleResolution": "node",
6-
"module": "CommonJS",
6+
"module": "esnext",
77
"noUnusedLocals": true,
88
"noUnusedParameters": true,
99
"esModuleInterop": true,

0 commit comments

Comments
 (0)