我收到反馈称该 Node 函数在获取文件行数时存在性能问题,但无法查明确切的详细信息。
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);
});
};
是否有更高效的方法来获取 Node 中文件的行数?
最佳答案
function countFileLines(filePath){
return new Promise((resolve, reject) => {
let lineCount = 0;
let i = 0;
fs.createReadStream(filePath)
.on("data", (buffer) => {
for (i = 0; i < buffer.length; ++i) {
if (buffer[i] == 10) lineCount++;
}
}).on("end", () => {
resolve(lineCount);
}).on("error", reject);
});
};
比较:
原文:node index.js 2.38s 用户 0.29s 系统 98% cpu 2.713 总计
修改: Node index2.js 0.18s 用户 0.04s 系统 96% cpu 0.225 总计
关于node.js - Node 文件行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439217/