Ich habe Feedback, dass diese Knotenfunktion Leistungsprobleme beim Abrufen der Zeilenanzahl einer Datei hat, aber nicht in der Lage, die genauen Details zu bestimmen.Node File Line Count
function countFileLines(filePath){
return new Promise((resolve, reject) => {
let lineCount = 0;
fs.createReadStream(filePath)
.on("data", (buffer) => {
buffer.forEach((chunk) => {
if (chunk === 10) lineCount++;
});
}).on("end",() => {
resolve(lineCount);
}).on("error", reject);
});
};
Gibt es eine performantere Möglichkeit, die Zeilenanzahl einer Datei in Node zu erhalten?
Funktioniert es effizienter, als wenn ich eine normale for-Schleife verwenden würde? –
Ja. Ich habe es dreimal mit meiner Funktion versucht und dreimal mit der Antwort von Qiaosen auf demselben Rechner mit der gleichen Datei. Die schnellste Zeit für meine Funktion war 443 ms. Der schnellste mit ihren war 812 ms. –
Verdammt, ich habe beide Antworten mit 2 großen Verzeichnissen verglichen; Beide Versionen sind ein bedeutender Schub, aber dein ist schneller. Die Logik ist nicht intuitiv, aber es ist brillant. Vielen Dank! –