Node.js 内存性能优化 - 知乎
Node.js 内存性能优化 - 知乎 Node.js 内存性能优化 布谷 关山难越,萍水相逢 本文翻译自: medium ,已获得作者 Naren Yellavula 的翻译许可 Node.js 允许我们写各种体量的服务端应用,小到单文件,大到数M。我们知道应用程序跑在计算机内存(RAM)上,所以内存性能优化变得至关重要,一个不好的实现可能阻塞服务器上同时运行的其它应用。C 和 C++ 程序员需要手动进行内存管理,因为内存泄露可能发生在 C 程序的任何地方,那么作为 JS 程序员,我们该如何处理呢? JS 程序员可能并不关心多任务处理的性能问题,因为 Node.js 一般用于web 服务开发,单线程的运行在高容量的特定服务器上。但即使是 web 服务开发,我们也需要在服务器上运行诸如 MySQL,Redis 等其它应用,所以我们需要关心内存性能问题,因为胡乱编写代码,可能导致其它应用的排队甚至阻塞。本文我们通过实例来了解一下,如何通过 stream(流),buffer(缓冲器)和 piping(管道)来优化内存性能。 我们使用 Node.js V8.12.0 来运行实例,所有示例代码可在此查看: narenaryan/node-backpressure-internals github.com 问题:拷贝大文件 使用 Node.js 拷贝大文件,最简单的实现如下 const fs = require ( 'fs' ); let fileName = process . argv [ 2 ]; let destPath = process . argv [ 3 ]; fs . readFile ( fileName , ( err , data ) => { if ( err ) throw err ; fs . writeFile ( destPath || 'output' , data , ( err ) => { if ( err ) throw err ; }); console . lo...