Я не привык работать с большими файлами, но мне было интересно, сколько времени приблизительно занимает чтение и запись в файл node.js при использовании файлов размером 2-3 ГБ или ~ 7,5 миллионов строк.
моя текущая реализация занимает около ~ 12 минут или 737859.276мс
Я знаю, что это трудно приблизить и зависит от контекста, но я хотел убедиться, что это можно сделать быстрее.
function LogParser(filePath, outputFile, cb) {
try {
const rl = createInterface({
input: createReadStream(filePath),
crlfDelay: Infinity,
});
writer.pipe(createWriteStream(outputFile));
rl.on('line', (line) => {
// Gets line and splits it by " - " where the ip is the first value
const IPAddress = line.split(' - ')[0];
const locationData = lookup(IPAddress); // translate to data object with region and country and city
const userAgentData = parser(line); // get userAgent data
const result = {
// object with data inside
};
writer.write(result)
});
rl.on('close', () => {
writer.end()
});
} catch (e) {
throw new Error(e.message);
}