用节点编写的 AWS Lambda 函数是否有任何 performance/functionality 差异。js/Java

Are there any performance/functionality differences for AWS Lambda functions written in node.js/Java

我计划将 AWS Lambda 用于应用程序的后端。与 node.js 相比,我更喜欢 Java,但我发现 node.js 中的 Lambda 函数比 Java 更受欢迎。基于 Java 和基于 nodejs 的 lambda 函数之间是否存在任何性能差异?

Java 与 NodeJS 函数相比,Lambda 上的函数通常需要更多资源,并且需要更长的时间才能从冷启动响应。否则没有区别。

虽然 Java 的启动时间较慢,但它的运行时性能比 node.js 或 Python 中的一个好很多。这意味着 Java Lambda 函数在以下情况下有意义:

  1. 它们会定期调用 - AWS Lambda 将 reuse it's initialized containers 并且您可以受益于没有冷启动延迟的更好性能

and/or

  1. 它们的运行时间很长 - 如果您的函数是 运行 例如对于 1 或 2 分钟,如果函数本身 运行 比 node.js
  2. 快一个数量级,那么您并不真正关心启动的 5 秒

您可能想看看比较冷启动时间的 this github project

Java 冷启动不佳的一个重要因素可能是 Java 项目通常比例如项目大很多。一个 node.js 函数。在任何情况下,您都应始终尝试使函数尽可能小以减少初始延迟。

当然,性能不应该是选择编程语言的唯一因素。我个人认为 node.js 在工作时非常方便,例如。使用 JSON 数据,这就是我在大部分功能中使用它的原因。