我如何让 Sharp 提速 950 倍(以及在 Bun 加入 Anthropic 后为何重要)

发布: (2025年12月14日 GMT+8 18:27)
3 min read
原文: Dev.to

Source: Dev.to

Sharp 的问题

Sharp 是一个经过实战检验的图像库,被成千上万的生产环境应用使用,但它在现代无服务器和高并发环境中存在多项限制,使用起来非常痛苦:

  • 开箱即用不支持原生 HEIC
  • 需要从源码构建 libvips
  • AWS Lambda 需要自定义 Docker 层
  • CI/CD 流程复杂
  • 元数据提取慢(需要解码整张图片)
  • 在并发负载下表现沉重,未针对无服务器进行优化

这些问题导致图像密集型应用处理速度慢、服务器成本高、用户体验差。

介绍 bun-image-turbo

一个基于 Rust 的图像处理库,从第一天起就为 Bun 和 Node.js 而生。

  • 100 % 开源,MIT 许可证,永久免费
  • 一条命令即可安装:
npm install bun-image-turbo
  • 无需自定义构建或编译
  • 包含原生 HEIC 支持

基准测试

操作Sharpbun-image-turbo提升
WebP 元数据3.4 ms0.004 ms950× 更快
JPEG 元数据0.1 ms0.003 ms38× 更快
PNG 元数据0.08 ms0.002 ms40× 更快
50 并发操作160 ms62 ms2.6× 更快
转换流水线19.1 ms12.2 ms1.6× 更快
HEIC 支持❌ (自定义构建)✅ 原生

元数据提取

Sharp 为读取尺寸会解码整张图片:

10 MB image → decode 10 MB → extract width/height → done (3.4 ms)

bun-image-turbo 只读取头部字节:

10 MB image → read ~100 bytes header → extract width/height → done (0.004 ms)

缩小策略

对于大幅度缩小,bun-image-turbo 使用逐步减半并在每一步采用最佳滤镜:

缩放因子算法
> 4× 缩小Box(快速,平均效果好)
2–4× 缩小Bilinear(快速,质量可接受)
  • GitHub:
  • npm:

你将获得的内容

功能好处
元数据提取950× 更快
并发操作2.6× 更快
转换流水线1.6× 更快
HEIC 支持原生,无需自定义构建
Blurhash内置
价格永久免费

入门指南

npm install bun-image-turbo

如有疑问,请在仓库的 issue 中留言。如果觉得有帮助,请考虑给仓库加星 ⭐。

Back to Blog

相关文章

阅读更多 »