Node -- 内存控制
2018-07-19 16:16
169 查看
在一般的后端语言中是没有内存使用限制的,但是Node中通过JS使用内存时智能使用部分内存,64bit=>1.4G,32bit=>0.7G,所以Node无法直接操作大内存对象,之所以会有这种现象,是因为Node是基于V8引擎构建,V8对于JS对象是通过自己的方式来分配和管理的。至于V8为何要限制内存,其实是出于两方面考虑的一是当时V8面向的是浏览器,大量内存的使用场景很少,二是垃圾回收机制的限制。当然这个限制可以设置。
process.memoryUsege() 查看内存使用情况。
1. 内存相关参数整理
node 启动时添加
--max-old-space-size | 新生代空间 |
--max-new-space-size | 老生代空间 |
--trace_gc -e | 垃圾回收日志 |
2. 大内存的应用
[code]// method1 var reader = fs.createReadStream('in.txt'); var writer = fs.createWriteStream('out.txt'); reader.on('data', function(chunk){ writer.write(chunk); } reader.on('end', function(){ writer.end(); } // method2 var reader = fs.createReadStream('in.txt'); var writer = fs.createWriteStream('out.txt'); reader.pipe(writer);
总结: 内存在Node中的使用不是随心所欲的,但也不是完全不擅长,应该时刻注意资源不释放,内存泄漏,scope不明确等问题,特别是在exports和闭包的时候。如果需要用内存做缓存尽量使用内存数据库Redis和Memcached。
阅读更多相关文章推荐
- node的内存控制
- Node——内存控制
- Node.js内存控制
- 深入浅出node.js:5 内存控制
- node.js web服务器开发 实践(二), 给web服务器加内存缓存
- 【深入浅出Node.js系列十四】Nodejs异步流程控制Async
- Cgroups控制cpu,内存,io示例
- node权限控制模块node_acl的应用
- Linux资源控制-CPU和内存
- Node+Express的跨域访问控制问题:Access-Control-Allow-Origin
- 图片的内存缓存控制
- 从零学习node.js之详解异步控制工具async(八)
- node.js 异步流程控制async
- 如何在 Node.js 中发现 JavaScript 内存漏洞
- 03-limit-memory-usage-es控制聚合内存使用-elasticsearch权威指南翻译
- 3.2 应用层与内核的通信方法 :访问数据的I/O方式、读写驱动程序、发送I/O控制码、内存共享
- VMware虚拟机预留内存分别与HA接入控制、磁盘使用容量的关系
- 数组与内存控制
- Linux下CGroup进行CPU内存等资源控制
- PHP 共享内存使用与信号控制