3

我正在测试具有两个不同运行时的应用程序:node.js 和 java 本机可执行文件(提前使用 GraalVM 编译)。

这是启动日志。

节点.js:

Duration: 556.31 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 81 MB Init Duration: 365.44 ms

本机可执行文件:

Duration: 548.98 ms Billed Duration: 1000 ms Memory Size: 256 MB Max Memory Used: 106 MB Init Duration: 411.83 ms

如您所见,Duration并且Init duration非常接近,但由于某种原因,Billed Duration对于具有本机可执行文件的自定义运行时来说几乎是 2 倍。

您能否解释一下有什么区别以及如何避免这种情况?

4

1 回答 1

3

对于自定义运行时,您需要为初始化时间以及文档中提到的付费-

“初始化计入计费执行时间和超时。当执行触发函数新实例的初始化时,您可以在日志和 AWS X-Ray 跟踪中看到初始化时间。”

548.98 毫秒(函数持续时间)+ 411.83 毫秒(初始化)= 960.81 毫秒四舍五入到下一个 100 毫秒,导致计费持续时间:1000 毫秒

对于 Lambda 支持的运行时;初始化时间不计入计费持续时间。

于 2020-04-15T17:28:16.423 回答