💡
原文英文,约4600词,阅读约需17分钟。
📝
内容提要
独立开发者Theo Browne发布了Cloudflare Workers与Vercel的JavaScript执行速度基准测试。初步结果显示Cloudflare在CPU密集型任务中表现不佳,经过调查发现多个小问题导致差异。修复后,Cloudflare的性能与Vercel相当,唯独在基于Next.js的基准测试中仍有差距。Cloudflare计划进一步优化性能。
🎯
关键要点
- 独立开发者Theo Browne发布了Cloudflare Workers与Vercel的JavaScript执行速度基准测试。
- 初步结果显示Cloudflare在CPU密集型任务中表现不佳,差距高达3.5倍。
- 调查发现多个小问题导致性能差异,包括基础设施调优不当和JavaScript库差异。
- 修复后,Cloudflare的性能与Vercel相当,唯独在Next.js基准测试中仍有差距。
- Cloudflare计划进一步优化性能,特别是在Next.js的基准测试中。
- 基准测试方法几乎与Theo的原始测试相同,但进行了小幅调整以提高准确性。
- Cloudflare的Workers平台在调度和垃圾回收方面进行了改进,提升了性能。
- 发现OpenNext在处理过程中存在不必要的内存分配和复制,导致性能下降。
- Next.js代码使用Node.js的字节流API,而Workers更倾向于使用Web标准的Streams API,导致性能瓶颈。
- JSON.parse()的reviver函数在性能上存在问题,Cloudflare已向V8提交补丁以提高速度。
- Cloudflare Workers在三角函数调用上表现优于Node.js,原因在于Node.js未使用最新的快速实现。
- 基准测试存在偏差,难以真实反映实际性能,Cloudflare和Vercel的网络延迟可能影响结果。
- Cloudflare和Vercel的服务器硬件不同,可能导致性能差异。
- Cloudflare计划继续改进Workers Runtime,并与开源社区合作提升整体性能。
➡️