【发布时间】:2015-02-16 05:11:46
【问题描述】:
我想知道console.log 是在 node.js 中缓冲输出还是尝试在每次调用时执行 IO?这似乎没有正式记录。
问题源于输出字符串数组的必要性,我认为哪个成语更有效:
array.forEach(function(line){
console.log(line)
})
或
console.log(array.join('\n'))
谢谢
【问题讨论】:
-
很难想象
forEach方法会更快,除非您已经为其他事情这样做了,但核心问题很有趣。 +1 -
嗯,在第二种方法中,您先将内存分配给可能很大的字符串,然后将其全部发送到
console.log,它可能有也可能没有缓冲区,使用更多的内存。在这种情况下,最好的选择是查看源代码 -
@Kroltan,如果您有足够的时间和专业知识,查看源代码是最好的方法。但如果你不这样做呢?
-
亚历克斯,对不起。 console.js 的来源:查看
log函数,它只是打印值+换行符。底层 C/C++ 库中的默认行为是,除非必要,否则它不会刷新,所以是的,大部分时间它都会缓冲。
标签: javascript node.js