有的 冷启动时间,128 mb、1024 mb 以及 3008 mb 内存配置下的各函数成绩,单位为毫秒。可以看到,整体结果与 2018 年相同,每种语言分配到的资源量越大、启动时长越短,而经过编译的语言速度相对更慢。
不过令人惊奇的是,与 2018 年不同,这一次,Node.js 成了最大的赢家,紧随其后的分别是 Ruby 以及 Python。在 2018 年的排名中,Python 夺得榜首,我认为这是因为 Lambda 本身就运行在 Python 环境中。由于启动时不需要额外的运行时,所以 Python 获得了明显的优势。而结合新一年的成绩,我们看到其它运行时也迎来了显著优化,甚至足以与 Python 正面对抗。
不同的编程语言在冷启动时长上有很大的差异。我自己测试,Java 的冷启动时长比 C++ 的要长,而 Python 的冷启动时长比 Java 的要短。
FaaS 中的函数首次调用、更新函数或长时间未调用时重新调用函数时,平台会初始化一个函数实例,这个过程就是冷启动,平均耗时在几百毫秒。 冷启动具体做了哪些操作呢?以阿里云为例,大致包括了调度实例、下载解压代码、启动容器、启动运行时,这一过程结束后,函数才开始执行。所以冷启动的启动消耗时间受到很多因素的影响:
编程语言,
有专门研究对比,不同语言的冷启动时间不同。 代码大小,
这个过程在冷启动过程中相对比较耗时,可能几十毫秒,也可能几秒,看代码体积大小,
容器创建,
这个过程的耗时取决于云服务商,
配置等, 不过目前还没有各种语言冷启动时长对比的详细数据。
这个目前没有详细的数据,可以自己测试一下,这样可信度会很好。另外根据一些机构和一些经验,python nodejs golang这些的冷启动会好一些。我自己用的python,我的冷启动只有100毫秒左右。当然这个会和自己的优化方案,以及代码包等内容有关。
此答案来自钉钉群“Serverless 开发者技术学习群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。