我创建了大小为var QL = [[],[],[],[]];
的数组[100][20][100][3]
,每次程序结束时我都需要保存数组,当我的程序再次启动时 IF 文件存在,然后加载。
的问题
1-如何快速(我的代码在下面,但速度非常慢!)?
2 - 如何快速加载?
QLearn.QLSave = function (){
var jsonQtable = [];
for (var a=0; a<100; a++) {
for (var b=0; b<20; b++) {
for (var c=0; c<100; c++){
for (var d=0; d<2; d++){
jsonQtable.push(QL[a,b,c,d].toJSON)
}
}
}
}
QLearn.ui.logger.log('Saving QL...');
var dir = './Qtable';
var fileName = dir + '/QL'+'.json';
fs.writeFile(fileName, JSON.stringify(jsonQtable), function (err){
if (err) {
QLearn.ui.logger.log('Failed to save! '+err);
} else {
QLearn.ui.logger.log('Saved to '+fileName);
}
});}
答案 0 :(得分:0)
Intead您批量编写文件,解决方案是在每次迭代中附加文件,使用fs.appendFile:
QLearn.QLSave = function (){
var jsonQtable = [];
for (var a=0; a<100; a++) {
for (var b=0; b<20; b++) {
for (var c=0; c<100; c++){
for (var d=0; d<2; d++){
fs.appendFile(fileName, QL[a,b,c,d].toJSON, function (err) {
if (!err){
console.log("Success in insert: " + QL[a,b,c,d].toJSON);
}
});
}
}
}
}