【发布时间】:2016-04-15 12:30:54
【问题描述】:
我正在解析一个 7 列和超过 30 万行的 excel 文件。
我需要创建对象(Nodejs 端)并在数据库中进行批量插入。
我想知道为此目的创建大量对象的最佳方法是什么。
我已经提出了三种方法,但在速度和内存方面不确定哪一种会是巢穴:
第一:
var bulkObjects = [];
worksheet.eachRow({includeEmpty: true}, function (row, rowNumber) {
var currentObject = createRowObject(row.values);
bulkObjects.push(currentObject);
});
function createRowObject(row) {
return {
Row1: row[1],
Row2: row[2],
Row3: row[3],
Row4: row[4],
Row5: row[5],
Row6: row[6]
}
}
第二:
var bulkObjects = [];
worksheet.eachRow({includeEmpty: true}, function (row, rowNumber) {
var currentObject = **new** createRowObject(row.values);
bulkObjects.push(currentObject);
});
function createRowObject(row) {
this.Row1: row[1],
this.Row2: row[2],
this.Row3: row[3],
this.Row4: row[4],
this.Row5: row[5],
this.Row6: row[6]
}
第三:
var bulkObjects = [];
worksheet.eachRow({includeEmpty: true}, function (row, rowNumber) {
var currentObject = createRowObject(row.values);
bulkObjects.push(currentObject);
});
function createRowObject(row) {
var o = new Object();
o["Row1"] = row[1];
o["Row2"] = row[2];
o["Row3"] = row[3];
o["Row4"] = row[4];
o["Row5"] = row[5];
o["Row6"] = row[6];
return o;
}
哪一个最适合创建大量对象。还有另一种方法吗?
【问题讨论】:
-
为什么不设置测试并使用 Profiling JavaScript Performance 进行检查?
-
如果内存是个问题,最好的方法是批量插入多个bulkObjects,而不是一次性完成,这样所有已经插入的对象都可以被垃圾回收.关于对象的创建,由于对象上没有方法,所有 3 种方法的速度都应该差不多,所以选择更简单的方法,第一种。您甚至可以通过删除函数调用并直接推送对象来使其更简单。
-
有没有例子如何做多个批量插入?
标签: javascript