@by Ruth92(转载请注明出处)

第5章 内存控制

基于无阻塞、事件驱动建立的 Node 服务,具有内存消耗低的优点,非常适合处理海量的网络请求。

内存控制正是在海量请求和长时间运行的前提下进行探讨的。

一、V8 的垃圾回收机制与内存限制

  1. V8 的内存限制

    在一般的后端开发语言中,在基本的内存使用上没有什么限制,但在 Node 中通过 JavaScript 使用内存时,只能使用部分内存,这样,再单个 Node 进程的情况下,计算机的内存资源无法得到充足的使用。

    ☞ 主要原因:Node 基于 V8 构建,在 Node 中使用的 JavaScript 对象基本上都是通过 V8 自己的方式来进行分配和管理的。

  2. V8 的对象分配

    在 V8 中,所有的 JavaScript 对象都是通过堆来进行分配的。

    ✔ V8 为何要限制堆的大小?

    • 表层原因:V8 最初为浏览器而设计,不太可能遇到用大量内存的场景。对于网页来说,V8 的限制值已足够。

    • 深层原因:V8 的垃圾回收机制的限制。

  3. V8 的垃圾回收机制

二、高效使用内存

三、内存指标

四、内存泄漏

五、内存泄漏排查

六、大内存应用

《深入浅出Node.js》第5章 内存控制(未完)的更多相关文章

  1. 【读书笔记】《深入浅出nodejs》第五章 内存控制

    海量请求+长时间运行 -> 内存控制 -> 一切资源高效循环利用 1. V8的垃圾回收机制与内存限制 在Node中通过JavaScript使用内存时,只能使用部分内存(64位系统下约1.4 ...

  2. 《深入浅出Node.js》第6章 理解 Buffer

    @by Ruth92(转载请注明出处) 第6章 理解 Buffer ✁ 为什么需要 Buffer? 在 Node 中,应用需要处理网络协议.操作数据库.处理图片.接收上传文件等,在网络流和文件的操作中 ...

  3. 《深入浅出Node.js》第7章 网络编程

    @by Ruth92(转载请注明出处) 第7章 网络编程 Node 只需要几行代码即可构建服务器,无需额外的容器. Node 提供了以下4个模块(适用于服务器端和客户端): net -> TCP ...

  4. 一个月时间整理《深入浅出Node.js》

    今天终于把朴灵老师写的<深入浅出Node.js>给学习完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架.库的使用层面上,而是从不同的视角来揭示Node自己内在 ...

  5. 《深入浅出node.js(朴灵)》【PDF】下载

    <深入浅出node.js(朴灵)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062563 内容简介 <深入浅出Node. ...

  6. 深入浅出node.js游戏服务器开发1——基础架构与框架介绍

    2013年04月19日 14:09:37 MJiao 阅读数:4614   深入浅出node.js游戏服务器开发1——基础架构与框架介绍   游戏服务器概述 没开发过游戏的人会觉得游戏服务器是很神秘的 ...

  7. 深入浅出Node.js(一):什么是Node.js

    Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟Joyent获得企业资助,再到 ...

  8. 读书笔记: 深入浅出node.js

    >> 深入浅出node.js node.js是c++编写的js运行环境 浏览器: 渲染引擎 + js引擎 后端的js运行环境 node.js用google v8引擎,同时提供很多系统级的A ...

  9. 深入浅出Node.js(一):什么是Node.js(转贴)

    以下内容转自:http://www.infoq.com/cn/articles/what-is-nodejs/ 作者:崔康 [编者按]:Node.js从2009年诞生至今,已经发展了两年有余,其成长的 ...

随机推荐

  1. mongodb 使用场景和不使用场景

    1.mongodb介绍 MongoDB (名称来自"humongous") 是一个可扩展的高性能,开源,模式自由,面向文档的数据库.它使用C++编写.MongoDB特点: a.面向 ...

  2. ECMAScript6 面向对象 时钟效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. linux 命令行启动虚拟机

    vmrun -T ws start /root/vmware/Windows\ Server\ 2012/Windows\ Server\ 2012.vmx nogui

  4. 网站整体架构去Windows化

    数据层放弃SQL Server数据库和存储过程,全部迁移到Linux平台上的MySQL数据库上: 缓存不再依赖.net自身提供的缓存机制,迁移到部署在Linux平台上的分布式的Redis上: 服务之间 ...

  5. 移动端flex布局 微信和UC的兼容性

    请查看以下两个链接 http://www.tuicool.com/articles/Afq6Bzq http://www.sheng00.com/2148.html

  6. spring IOC装配Bean(注解方式)

    1 Spring的注解装配Bean (1) Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean (2) Spring的框架中提供了与@Componen ...

  7. jdbc执行预处理,批处理,LOB字段处理,调用存储过程

    (1)jdbc执行预处理 PreparedStatment预备语句 eg:String sql="insert into user(id,name,birthday,money) value ...

  8. 例子:Background Transfer Service Sample

    本例演示了如何使用后台传输服务来进行后台文件下载,也就是说及时App已经停止运行,同样可以通过后台代理进行文件的下载操作. 对于后台文件传输一下知识点必须注意: 1. 通过使用 BackgroundT ...

  9. logsatsh input 插件之 collectd

    logsatsh input 插件之 collectd 标签(空格分隔): logstash 作用:用于监控内存,cpu,磁盘I等信息 未完待续,时间未定. 参考: logstash 官网 elast ...

  10. 使用Object类型的多态引用是会付出代价的

    import java.util.*; public class FiveShi { String name; public void eat(){ System.out.println(" ...