javascript - 您是否需要在 Node.js 函数的末尾取消变量以避免内存泄漏?
问题描述
所以我试图在我部署到 Heroku 的应用程序中找到内存泄漏。我在大多数(如果不是全部)功能中都使用快递请求,所以我认为我在这里遗漏了一些基本问题。查看此链接的“关闭”部分(https://betterprogramming.pub/the-4-types-of-memory-leaks-in-node-js-and-how-to-avoid-them-with-the -help-of-clinic-js-part-1-3f0c0afda268),似乎您必须使变量无效才能释放它们占用的内存。这是我的功能:
async function HelperFunction() {
const client = await pool.connect()
return new Promise( async (resolve, reject) => {
let var0 = []
let currentDate = new Date()
let date = ("0" + currentDate.getDate()).slice(-2);
let month = ("0" + (currentDate.getMonth() + 1)).slice(-2);
let year = currentDate.getFullYear();
let currentTimestamp = year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds
try {
await client.query('BEGIN')
const res = await client.query(querySQLFunction, [currentTimestamp]);
for (row of res.rows) {
let jsonObject = {
var1: row.var1,
var2 : row.var2,
var3 : Number(row.var3),
var4 : Number(row.var4),
var5 : 0
}
var0.push(jsonObject)
}
await client.query('COMMIT')
} catch(err) {
await client.query('ROLLBACK')
console.log(err)
} finally {
client.release()
resolve(var0)
}
})
}
例如,在上面的函数中,我是否必须在“finally”块中将所有让设置为空?另外,如果我在其他函数中定义函数:
async function otherFunction() {
const foo = async (page) => {
//await query some stuff
}
//nullification of foo here?
}
我必须在函数结束之前将 const 设置为 null 吗?
解决方案
推荐阅读
- javascript - 如何将数据附加到表中(脚本到 HTML)
- spring-boot - 如何从请求中获取原始 JSON 消息并从响应中获取 HTTP 状态码
- excel - 将多个工作表之间的链接自动更新为摘要表
- c# - 将 EF Core 2.1 升级到 3.1 后如何使用“SaveChanges”
- mysql - Mysql 2从语句2中使用的语句1中选择具有值的语句
- html - 在 HTML/CSS 中创建垂直分隔线
- bokeh - 如何使用值映射创建自定义悬停工具
- sql - 根据其他列中存在的数据修改列的内容
- javascript - javascript 没有在 django 模板中加载....或者它在 django 中不起作用
- magento2 - 为什么我在 magento 2 中的编译时出错