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].
完美的作品,謝謝。 –