1
试图做一些地理空间性能压力测试。节点在简单循环内存耗尽
我有以下代码 (我不能--expose-gc grunt issue所以我不能调用global.gc())。
var getRandomRange = function(start, end){
return parseFloat((Math.random() * (start - end) + end).toFixed(4));
}
/* Max and min long and lat.
Latitude : max/min +90 to -90
Longitude : max/min +180 to -180
*/
var createRandomSeeds = function(index)
{
var createSeedsTestPropertyData = [];
for(var i = 0; i < 1000; i++)
{
createSeedsTestPropertyData.push({
name:i.toString(),
location: [
getRandomRange(+90, -90), getRandomRange(+180, -180)
]
});
}
//Mongoose create records.
Property.create(createSeedsTestPropertyData);
console.log('Created many records, ' + index);
}
for(var i = 0; i < 1000; i++)
{
createRandomSeeds(i);
}
我假定节点会自动释放内存。
现在我一直困在业余时间超过2小时,因为我不能种子测试。
有谁知道我能做些什么来避免这种情况? (V4.2.1)
<--- Last few GCs --->
31667 ms: Scavenge 1401.8 (1457.0) -> 1401.8 (1457.0) MB, 8.6/0 ms (+ 2.4 ms in 1 steps since last GC) [allocation failure] [incremental marking delaying mark-sweep].
32749 ms: Mark-sweep 1401.8 (1457.0) -> 1401.8 (1456.0) MB, 1082.0/0 ms (+ 3.4 ms in 2 steps since start of marking, biggest step 2.4 ms) [last resort gc].
33867 ms: Mark-sweep 1401.8 (1456.0) -> 1401.6 (1457.0) MB, 1118.0/0 ms [last resort gc].
完美的作品,谢谢。 –