lambda功能带有graalvm天然图像 - 散布冷热的部分始于graalvm 23

基于GraalVM 23原生镜像的Lambda函数性能测试:冷启动与热启动

本文延续前文,对使用GraalVM 21构建的Lambda函数进行性能测试的后续研究。 考虑到GraalVM 23的发布以及相关依赖项的更新,我们对示例应用程序进行了升级,并重新评估了其冷启动和热启动性能。

示例应用程序的配置与前文保持一致,但已更新至GraalVM 23.0.1,并包含最新的AWS依赖项(如software.amazon.awssdk BOM、AWS-LAMBDA-JAVA-CORE、AWS-LAMBDA-JAVAS、AWS-JAVA-EVENTS、AWS-lambda-java-Serialization等)以及lambda-runtime-graalvm和原生镜像构建插件。 部分日志记录类别的初始化方式有所调整,并已添加到原生镜像构建配置中。

测试方法及结果

Lambda性能测试方法与前文一致。测试结果如下(单位:毫秒):

指标 p50 p75 p90 p99 p99.9 max
冷启动 (C) 618.18 628.78 638.28 667.64 705.37 705.61
热启动 (W) 4.03 4.62 5.25 10.

33
38.76 103.27

结论

与GraalVM 21版本相比,GraalVM 23的冷启动时间增加了50到100毫秒。这可能与更新后的依赖项导致原生镜像体积增大有关,而更大的Lambda镜像通常会导致更长的冷启动时间。 然而,热启动时间在大部分百分位数上有所减少,这表明GraalVM 23在性能方面有所改进。

欢迎访问我的GitHub账号,关注我的项目并为我的仓库点赞!