Skip to content

Commit c8c1b0b

Browse files
benchmark ImageScript 3.7.0
1 parent 082d63c commit c8c1b0b

11 files changed

Lines changed: 226 additions & 226 deletions

File tree

‎bench/README.md‎

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,44 +19,44 @@ Photon and ImageScript 1 are WebAssembly.
1919

2020
## Numbers
2121

22-
Operations per second (more is faster), measured 2026-10-25 with Node.js v24.21.0 on AMD EPYC 9V74 80-Core Processor, ImageScript 3.6.0.
22+
Operations per second (more is faster), measured 2026-10-26 with Node.js v24.21.0 on AMD EPYC 9V74 80-Core Processor, ImageScript 3.7.0.
2323

2424
| | **ImageScript 3** | **ImageScript 1** | **Jimp** | **image-js** | **PureJsImage** | **Photon** | **sharp** | **@napi-rs/canvas** |
2525
|---|--:|--:|--:|--:|--:|--:|--:|--:|
26-
| decode JPEG | **15.6** | 7.99 | 7.95 | 7.36 | 9.84 | 26.1 | 84.2 | 57.1 |
27-
| decode PNG | **39.0** | 36.4 | 20.1 | 11.3 | 14.9 | 47.3 | 64.0 | 63.7 |
28-
| decode WebP (lossy) | **12.1** | – | – | – | 12.3 | 13.6 | 43.2 | 80.4 |
29-
| encode JPEG (quality 80) | **14.9** | 22.6 | 3.10 | 11.2 | 8.57 | 11.2 | 67.5 | 44.1 |
30-
| encode PNG | **8.84** | 4.72 | 5.06 | 3.82 | 2.09 | 11.6 | 8.81 | 2.40 |
31-
| encode WebP (lossless) | **1.95** | – | – | – | 0.45 | 28.7 | 0.83 | 2.59 |
32-
| resize to half | **85.8** | 461 | 75.3 | 13.7 | 20.3 | 21.4 | 71.6 | 413 |
33-
| rotate by 30° | **33.0** | 8.21 | 2.17 | 1.47 | 2.35 | 6.10 | 17.8 | 40.9 |
34-
| blur (radius 5) | **16.2** | – | 0.01 | 1.55 | – | 7.66 | 39.7 | 71.0 |
35-
| composite an overlay | **547** | 786 | 39.3 | 153 | – | 202 | 118 | 600 |
36-
| crop | **1,085** | 922 | 61.6 | 79.7 | 120 | 215 | 1,430 | 1,799 |
37-
| clone | **1,490** | 1,220 | 1,539 | 1,138 | 1,722 | 500 | 1,822 | 654 |
38-
| render text | **2,594** | 70.4 | – | – | – | – | 2,631 | 3,928 |
39-
| render SVG | **8.37** | fails | – | – | – | – | 31.0 | 121 |
40-
| decode animated GIF | **17.6** | 9.52 | – | – | – | – | 19.5 | – |
41-
| encode animated GIF | **6.18** | 1.47 | – | – | – | – | 1.10 | – |
26+
| decode JPEG | **15.8** | 7.93 | 7.50 | 7.24 | 9.93 | 26.0 | 81.5 | 56.4 |
27+
| decode PNG | **39.3** | 35.9 | 19.7 | 11.1 | 15.4 | 48.9 | 62.1 | 62.5 |
28+
| decode WebP (lossy) | **13.1** | – | – | – | 12.3 | 13.6 | 42.9 | 80.0 |
29+
| encode JPEG (quality 80) | **15.3** | 22.4 | 3.02 | 11.3 | 8.56 | 11.1 | 67.2 | 44.1 |
30+
| encode PNG | **9.17** | 4.61 | 5.01 | 3.76 | 2.08 | 11.6 | 8.83 | 2.41 |
31+
| encode WebP (lossless) | **1.03** | – | – | – | 0.45 | 28.7 | 0.83 | 2.55 |
32+
| resize to half | **83.1** | 431 | 74.6 | 13.7 | 20.2 | 21.4 | 71.0 | 388 |
33+
| rotate by 30° | **32.9** | 8.19 | 2.13 | 1.45 | 2.33 | 6.08 | 17.8 | 40.8 |
34+
| blur (radius 5) | **16.3** | – | 0.01 | 1.55 | – | 7.66 | 39.1 | 77.6 |
35+
| composite an overlay | **535** | 792 | 38.6 | 152 | – | 196 | 118 | 560 |
36+
| crop | **1,016** | 827 | 61.5 | 78.3 | 118 | 215 | 1,359 | 1,530 |
37+
| clone | **1,499** | 1,175 | 1,634 | 1,187 | 1,729 | 483 | 1,747 | 640 |
38+
| render text | **2,547** | 68.9 | – | – | – | – | 2,682 | 3,168 |
39+
| render SVG | **8.21** | fails | – | – | – | – | 30.1 | 117 |
40+
| decode animated GIF | **17.4** | 9.29 | – | – | – | – | 19.1 | – |
41+
| encode animated GIF | **6.15** | 1.45 | – | – | – | – | 1.10 | – |
4242

4343
Encoded sizes:
4444

4545
| | **ImageScript 3** | **ImageScript 1** | **Jimp** | **image-js** | **PureJsImage** | **Photon** | **sharp** | **@napi-rs/canvas** |
4646
|---|--:|--:|--:|--:|--:|--:|--:|--:|
4747
| photo PNG | 2.2 MB | 3.0 MB | 2.7 MB | 2.8 MB | 2.1 MB | 2.8 MB | 2.8 MB | 2.1 MB |
4848
| photo JPEG | 217 kB | 257 kB | 260 kB | 260 kB | 222 kB | 257 kB | 218 kB | 218 kB |
49-
| photo WebP | 1.4 MB | – | – | – | 2.1 MB | 1.7 MB | 1.2 MB | 1.4 MB |
49+
| photo WebP | 1.3 MB | – | – | – | 2.1 MB | 1.7 MB | 1.2 MB | 1.4 MB |
5050
| graphic PNG | 891 kB | 802 kB | 2.0 MB | 736 kB | 811 kB | 2.2 MB | 718 kB | 1.0 MB |
5151
| graphic JPEG | 275 kB | 314 kB | 315 kB | 315 kB | 286 kB | 314 kB | 275 kB | 276 kB |
52-
| graphic WebP | 580 kB | – | – | – | 758 kB | 856 kB | 239 kB | 631 kB |
52+
| graphic WebP | 557 kB | – | – | – | 758 kB | 856 kB | 239 kB | 631 kB |
5353
| animation GIF | 825 kB | 1.3 MB | – | – | – | – | 720 kB | – |
5454

5555
| | **ImageScript 3** | **ImageScript 1** | **Jimp** | **image-js** | **PureJsImage** | **Photon** | **sharp** | **@napi-rs/canvas** |
5656
|---|---|---|---|---|---|---|---|---|
5757
| kind | JavaScript | WebAssembly | JavaScript | JavaScript | JavaScript | WebAssembly | native (libvips) | native (Skia) |
58-
| package | `imagescript@3.6.0` | `imagescript@1.3.1` | `jimp@1.6.1` | `image-js@1.7.1` | `purejsimage@0.17.0` | `@silvia-odwyer/photon-node@0.3.4` | `sharp@0.35.5` | `@napi-rs/canvas@1.0.11` |
59-
| install size | 1.9 MB | 6.7 MB | 26.8 MB | 47.8 MB | 6.7 MB | 2.3 MB | 20.3 MB | 35.0 MB |
58+
| package | `imagescript@3.7.0` | `imagescript@1.3.1` | `jimp@1.6.1` | `image-js@1.7.1` | `purejsimage@0.17.0` | `@silvia-odwyer/photon-node@0.3.4` | `sharp@0.35.5` | `@napi-rs/canvas@1.0.11` |
59+
| install size | 2.1 MB | 6.7 MB | 26.8 MB | 47.8 MB | 6.7 MB | 2.3 MB | 20.3 MB | 35.0 MB |
6060
| packages | 1 | 1 | 64 | 55 | 1 | 1 | 6 | 2 |
6161

6262
## Method

‎bench/charts/animation.svg‎

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)