节点JS映射对象内存泄漏?

时间:2017-02-01 01:12:51

标签: javascript node.js memory-leaks

我在Node JS中有一个map / dictionary对象,其中键是一个字符串,值是一个对象数组。所以(键,值)看起来像(" 123",[obj1,obj2,obj3])等等。

我有以下代码将新对象(" vehicle")添加到地图中,但它正在给我"处理内存不足"错误:

        ...
        var vehiclePositionsDict = new Map();
        ...
        if (vehiclePositionsDict.has(vehicle.vehicle_id)) {
           // If key already exists, add the "vehicle" object to array.
           (vehiclePositionsDict.get(vehicle.vehicle_id)).push(vehicle);
        } else {
           // The key does not yet exist so create a new value.
            var vehicles = [];
            vehicles.push(vehicle);
            vehiclePositionsDict.set(vehicle.vehicle_id, vehicles);
        }

我不确定为什么会出现内存不足错误。如果我只是将上面的代码替换为下面的代码,那么就没有内存不足的错误:

            vehiclePositionsDict[vehicle.vehicle_id] = vehiclePositionsDict[vehicle.vehicle_id] || [];
            vehiclePositionsDict[vehicle.vehicle_id].push(vehicle);

有什么区别?

我在Windows 7 64位环境中运行Node JS v5.0.0。地图/字典每15秒左右清除一次。

0 个答案:

没有答案