在node.js / Java中编写的AWS Lambda函数是否存在任何性能/功能差异

时间:2016-05-02 13:02:58

标签: java node.js amazon-web-services aws-lambda

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

2 个答案:

答案 0 :(得分:21)

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

  1. 定期调用 - AWS Lambda将reuse it's initialized containers,您可以从没有冷启动延迟的更好性能中受益
  2. 和/或

    1. 他们的运行时间很长 - 如果您的功能正在运行,例如1或2分钟,如果函数本身比node.js快一个数量级,你真的不关心启动5秒
    2. 您可能需要查看比较冷启动时间的this github project

      Java糟糕的冷启动的一个重要因素可能是Java项目通常比例如node.js函数。无论如何,您应该始终尽量保持功能尽可能小,以减少初始延迟。

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

答案 1 :(得分:3)

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