imagescript
Version:
zero-dependency javascript image manipulation
64 lines (63 loc) • 7.27 kB
Markdown
these benchmarks are purely for v2 progress tracking
`node all.mjs`
```js
resize linear (256 -> 1024)
┌─────────────────────────────────────────────────────────────────────────────┐
│ imagescript │ 19,503,902 ns/iter (18,861,626..27,912,168 ns/iter) │
│ imagescript-rs (wasm) │ 17,713,101 ns/iter (17,476,625..23,760,793 ns/iter) │
└─────────────────────────────────────────────────────────────────────────────┘
resize cubic (256 -> 1024)
┌────────────────────────────────────────────────────────────────────────────────┐
│ imagescript │ 235,246,467 ns/iter (229,790,251..354,907,209 ns/iter) │
│ sharp │ 14,342,381 ns/iter (10,830,958..39,727,583 ns/iter) │
│ imagescript-rs (wasm) │ 63,684,581 ns/iter (62,884,708..75,180,751 ns/iter) │
└────────────────────────────────────────────────────────────────────────────────┘
flip horizontal (256)
┌─────────────────────────────────────────────────────────────────────────────────┐
│ jimp │ 1,259,846 ns/iter (1,209,542..2,151,208 ns/iter) │
│ imagescript │ 26,333 ns/iter (24,626..93,501 ns/iter) │
│ sharp │ 24,134,341 ns/iter (274,959..210,144,563,500 ns/iter) │
│ image-rs (wasm) │ 43,797 ns/iter (43,501..74,293 ns/iter) │
│ imagescript-rs (wasm) │ 14,309 ns/iter (13,959..49,333 ns/iter) │
└─────────────────────────────────────────────────────────────────────────────────┘
flip vertical (256)
┌───────────────────────────────────────────────────────────────────────────┐
│ jimp │ 1,281,557 ns/iter (1,223,292..7,604,917 ns/iter) │
│ imagescript │ 54,151 ns/iter (53,333..89,959 ns/iter) │
│ sharp │ 2,552,946 ns/iter (513,959..10,188,876 ns/iter) │
│ image-rs (wasm) │ 30,475 ns/iter (30,167..88,250 ns/iter) │
│ imagescript-rs (wasm) │ 13,747 ns/iter (13,542..27,042 ns/iter) │
└───────────────────────────────────────────────────────────────────────────┘
overlay(256x256)
┌─────────────────────────────────────────────────────────────────────────────────┐
│ jimp │ 3,428,386 ns/iter (3,372,335..5,125,459 ns/iter) │
│ imagescript │ 259,099 ns/iter (256,583..310,334 ns/iter) │
│ image-rs (wasm) │ 541,678 ns/iter (533,166..1,509,710 ns/iter) │
│ imagescript-rs (wasm) │ 143,653 ns/iter (137,293..1,242,793 ns/iter) │
│ sharp │ 28,689,423 ns/iter (1,837,000..210,144,590,042 ns/iter) │
└─────────────────────────────────────────────────────────────────────────────────┘
resize nearest (256 -> 1024)
┌───────────────────────────────────────────────────────────────────────────────┐
│ imagescript │ 1,452,792 ns/iter (1,327,334..13,043,958 ns/iter) │
│ jimp │ 6,053,008 ns/iter (5,835,042..9,540,835 ns/iter) │
│ sharp │ 6,209,299 ns/iter (2,089,376..15,344,367,876 ns/iter) │
│ image-rs (wasm) │ 4,823,582 ns/iter (4,809,042..7,176,000 ns/iter) │
│ imagescript-rs (wasm) │ 600,103 ns/iter (597,042..802,751 ns/iter) │
└───────────────────────────────────────────────────────────────────────────────┘
blur (5.0f/256x256)
┌─────────────────────────────────────────────────────────────────────────────────┐
│ jimp │ 3,752,613 ns/iter (3,338,751..17,802,125 ns/iter) │
│ imagescript │ 1,982,010 ns/iter (1,935,459..2,907,833 ns/iter) │
│ sharp │ 36,079,515 ns/iter (2,465,000..210,155,512,001 ns/iter) │
│ image-rs (wasm) │ 6,050,020 ns/iter (6,037,125..8,032,876 ns/iter) │
│ imagescript-rs (wasm) │ 1,288,080 ns/iter (1,263,834..1,699,542 ns/iter) │
└─────────────────────────────────────────────────────────────────────────────────┘
blur (5.0f/1024x1024)
┌───────────────────────────────────────────────────────────────────────────────┐
│ jimp │ 105,250,057 ns/iter (89,942,042..302,817,625 ns/iter) │
│ imagescript │ 31,996,324 ns/iter (31,372,417..101,801,209 ns/iter) │
│ sharp │ 20,019,663 ns/iter (18,547,168..66,675,542 ns/iter) │
│ image-rs (wasm) │ 97,924,025 ns/iter (96,879,584..158,598,250 ns/iter) │
│ imagescript-rs (wasm) │ 20,960,014 ns/iter (20,533,709..104,136,960 ns/iter) │
└───────────────────────────────────────────────────────────────────────────────┘
```