登录
首页 >  文章 >  java教程

带有 GraalVM Native Image 的 Lambda 函数 - 使用不同的 Lambda 内存设置部分缓解冷启动和热启动

来源:dev.to

时间:2024-12-22 11:36:59 325浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个文章开发实战,手把手教大家学习《带有 GraalVM Native Image 的 Lambda 函数 - 使用不同的 Lambda 内存设置部分缓解冷启动和热启动》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

带有 GraalVM Native Image 的 Lambda 函数 - 使用不同的 Lambda 内存设置部分缓解冷启动和热启动

介绍

在我们的文章系列的第 2 部分中,我们探索了如何使用包含 GraalVM 21 运行时的 GraalVM Native Image 的自定义运行时来开发和部署纯 Lambda 函数(不使用 Spring Boot 3 等任何框架),在第 3 部分中,我们测量了使用此方法使用 1024 MB 内存的 Lambda 函数的性能(冷启动和热启动时间)。

在本文中,我们将使用 256 到 1536 MB 之间的不同内存设置来测量 Lambda 的冷启动和热启动,以探索成本和性能之间的权衡。

使用包含具有不同内存设置的 GraalVM 本机映像的自定义运行时测量 Lambda 函数的冷启动和热启动

我们将重复使用本系列文章第 3 部分中描述的完全相同的实验,但内存设置在 256 到 1536 MB 之间。

以下是实验结果:

冷 (c) 和暖 (m) 开始时间(以毫秒为单位):

Memory setting c p50 c p75 c p90 c p99 c p99.9 c max w p50 w p75 w p90 w p99 w p99.9 w max
256 MB 822.74 833.50 845.25 923.88 952.96 953.84 4.04 4.59 5.47 18.55 137.10 471.76
512 MB 620.04 621.40 657.70 705.37 727.57 727.97 4.16 4.65 5.46 14.32 64.54 229.29
768 MB 561.63 574.11 589.82 628.15 633.83 634.23 4.23 4.73 5.55 13.01 42.31 203.22
1024 MB 525.77 532.12 542.32 632.56 635.73 636.11 4.16 4.69 5.46 12.30 37.25 211.83
1280 MB 515.37 524.20 539.08 577.57 624.39 624.52 4.23 4.77 5.64 12.80 34.67 126.97
1536 MB 504.16 516.40 528.93 548.86 628.15 628.31 4.26 4.73 5.55 12.70 44.03 105.46

结论

在本文中,使用包含 GraalVM Native Image 和 GraalVM 21 运行时的自定义运行时,测量了内存设置在 256 到 1536 MB 之间的纯 Lambda 函数的冷启动和热启动。

我们观察到,对于设置较低的内存(例如 256 或 512 MB),热启动时间彼此非常接近,并且差异主要在高百分位处可见(>= p90)。 256 和 512 MB 的冷启动时间相当长,从 768 MB 开始,通过为 Lambda 提供更多内存,冷启动时间只会稍微减少一点,而对于大于 1024 MB 的内存没有任何明显差异。 根据您的性能要求,您可以为 Lambda 提供少于 1024 MB 的内存(正如我们最初在示例应用程序中给出的那样),并且使用 768 MB 甚至更少的内存可以获得非常好的性价比。

在发布时,还提供了较新的版本(例如 GraalVM 23 运行时),因此您可以按照本系列第 2 部分中的说明进行版本更改并重新编译 GraalVM Native 映像,并重新测量性能.

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>