【发布时间】:2025-11-27 11:00:02
【问题描述】:
我写了一个定期删除对象的函数。
function add(variable, expireSecond){
this.list[variable] = {"expireSecond": expireSecond, "addTime": (new Date().getTime()) / 1000};
}
function deleteExpiredObject(){
var currentTime = (new Date().getTime()) / 1000;
for (var key in this.list) {
var item = this.list[key];
if (item.expireSecond + item.addTime < currentTime){
delete this.list[key];
}
}
}
当我使用它时,我尝试了以下操作:
add(xxx[1], 300);
但是当我调用deleteExpiredObject()时,对象过期后似乎内存不是空闲的。是因为xxx[1] 中对象的非零引用吗?怎么解决?有没有我可以使用的库?
谢谢!
【问题讨论】:
-
我收集
this.list是一个对象?似乎您使用数据结构跟踪项目,然后仅删除跟踪结构。你可能想要这个接口set(name, value, expiryTime), var value = get(name)。
标签: javascript node.js garbage-collection