【发布时间】:2017-07-21 09:17:28
【问题描述】:
背景
我正在使用 AWS Lambda 和 API Gateway 构建 API。我没有将每个 API 端点拆分为单独的 lambda 函数,而是将它们包装到一个库中并使用 aws-serverless-express 库。
问题
鉴于整个 API 的一部分可能会在单个 Lambda 执行中使用——从内存利用率的角度来看(以降低成本):
var myModule = require("mymodule");
...
function handleSomething1()
{
myModule.doSomething();
}
function handleSomething2()
{
...
}
或
function handleSomething()
{
require("mymodule").doSomething();
}
function handleSomething2()
{
...
}
因此,例如,单个 API 请求可能会导致在 Lambda 函数关闭之前仅调用 handleSomething2。在那种情况下,我们是否通过调用var myModule = require("mymodule"); 来有效地浪费内存?
我想更直接的问题是,当我var myModule = require("mymodule") 时,node.js 运行时是否真的为myModule 分配了内存?或者在我真正做 myModule 之前,它实际上是一个无操作?
【问题讨论】:
标签: javascript node.js memory aws-lambda serverless-framework