JavaScript Lambda 运行时基准测试

JavaScript Lambda 运行时基准测试

💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

上个月,我测试了Bun作为自定义JavaScript Lambda运行时,发现其性能明显不如AWS的Node.js运行时。Node.js的冷启动时间和调用持续时间均较短,Deno的性能优于Bun,而Node.js在初始化时表现最佳。总体而言,AWS的Node.js运行时性能优秀,适合基本API开发。

🎯

关键要点

  • 上个月测试Bun作为自定义JavaScript Lambda运行时,发现其性能明显不如AWS的Node.js运行时。
  • Node.js的冷启动时间和调用持续时间均较短,Deno的性能优于Bun。
  • Node.js在初始化时表现最佳,适合基本API开发。
  • 使用JWT和SHA3-512哈希生成进行性能比较,Bun和Deno使用TypeScript,Node.js使用JavaScript。
  • 使用AWS CDK项目部署不同的Lambda函数,并通过SQS队列触发函数。
  • 在1326次调用中,Bun的平均调用时间为50.513ms,Deno为13.708ms,Node.js为21.290ms。
  • 在初始化持续时间方面,Node.js平均为152.014ms,Deno为267.474ms,Bun为547.651ms。
  • AWS的Node.js运行时性能优秀,初始化持续时间相对一致。
  • Deno的容器基础自定义运行时在性能上优于Bun的Lambda Layer基础方法。
  • 对于基本API开发,选择任何这些运行时都可以,重点在于所需功能和开发者体验。

延伸问答

Bun与AWS的Node.js运行时相比,性能如何?

Bun的性能明显不如AWS的Node.js运行时,尤其在冷启动和调用持续时间上。

在冷启动时间和调用持续时间方面,哪个运行时表现最好?

Node.js在冷启动时间和调用持续时间方面表现最佳。

Deno的性能与Bun相比如何?

Deno的性能优于Bun,尤其在初始化和调用持续时间上。

在初始化持续时间方面,哪个运行时最慢?

Bun的初始化持续时间最慢,平均为547.651毫秒。

对于基本API开发,应该选择哪个JavaScript运行时?

对于基本API开发,选择任何这些运行时都可以,重点在于所需功能和开发者体验。

如何通过AWS CDK部署不同的Lambda函数?

可以通过AWS CDK项目设置基础设施,并使用SQS队列触发不同的Lambda函数。

➡️

继续阅读