自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 非I/O的异步API

定时器:setTimeout、setInterval调用创建到定时器会被插入到定时器观察者内部的红黑树中,每次tick执行时,会从该红黑树中迭代取出定时器对象,检查是否超过定时时间,如果超过,就形成一个事件,它到回调函数立即执行。定时器到问题在于并非很精确,如通过setTimeout设定一个任务在10mm后执行,但在9mm后,有个任务占用了5mm的CPU时间,再次轮到定时器执行时,时间就过...

2018-12-10 17:43:58 121 1

原创 Node的异步I/O

异步I/O环节有事件循环、观察者和请求对象等事件循环在进程启动时,Node会创建一个类似于while(true)到循环,每执行一次循环体到过程称为Tick,每个Tick到过程是查看是否有事件待处理,如果有,就取出事件及其相关到回调函数,如果存在关联到回调就执行,然后进入下一个循环,如果不再有事件处理,就退出进程。观察者每个事件循环中有一个或者多个事件观察者,判断是否有事件要处理的过...

2018-12-05 11:37:29 113

原创 Node高效使用内存

变量的主动释放如果变量是全局变量,由于全局作用于需要直到进程退出才能释放,此时将导致引用的对象常驻内存(常驻在老生代中),如果需要释放常驻内存的对象,可以通过delete操作来删除引用关系。或者将变量重新赋值,让旧的对象脱离引用关系,但在V8中通过delete删除对象的属性有可能干扰V8的优化,所以通过赋值方式解除引用更好:变量 = null ;闭包在JavaScript中,实现外部作...

2018-11-26 22:23:19 535

原创 Node.js内存控制

V8的内存限制在Node中通过JavaScript使用内存时只能使用有限的内存,在64位系统下为1.4GB,32位系统下为0.7GB,在这样的限制下会导致Node无法直接操作大内存对象,比如无法讲一个大于1.4GB的文件读入内存中进行字符串分析处理。主要原因在于Node基于V8构建,所以在Node中使用的JavaScript对象基本上都是通过V8自己的方式进行分配和管理的。V8的对象分...

2018-11-19 15:33:12 337

原创 Node.js 基本概念介绍

Node.js 是运行在服务端的JavaScript,基于Chrome JavaScript运行时建立的一个平台,是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行JavaScript的速度非常快,性能非常好。Node.js特点1、异步I/O观察者:随着用户的点击或者加载某些文件时产生,这些产生的事件都有相应的观察者,如:文件I/O观察者、网络...

2018-11-17 17:11:35 194

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除