- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 Node——玩转进程
Node基于V8引擎构建,与浏览器类似,我们的JS将会运行在单个进程的单个线程上,他带来的好处是:程序状态是单一的,没有锁和线程同步问题,没有上下文切换CPU使用率高。但是还是有别的问题:CPU的多核无法利用,单线程上有异常并没有被捕获的情况下,服务器就无法继续提供服务了。 多进程架构 Node提供了child_process模块,这个模块可以做到打开新的进程来执行任务。最理想的状态应该是
2016-08-24 14:00:57 2755
原创 Node——构建Web应用
基础功能 之前我们通过http模块创建了一个简单的服务器,但是对于一个网络应用来说肯定是远远不够的,在聚义的业务中我们至少有如下要求: 请求方法的判断 URL的路径解析 URL中查询字符串的解析 Cookie的解析 Basic认证 表单数据的解析 任意格式的上传处理 Session管理 一切的开始都是这个函数: var server = http.createServer(func
2016-08-21 22:11:34 3441 1
原创 Node——Buffer
对于传统的前端开发者,我们不需要处理网络协议,数据库,图片数据,接收上传文件等。但是在Node中这是很基本的场景。这里用到的大部分都是二进制数据,这是原有JS无法处理的。于是Buffer对象就出现了。 Buffer结构 Buffer是一个像Array的对象,主要用于字节操作。其性能部分用C++实现,非性能部分由JS实现。 在前面一节中我们知道Buffer所占的内存不是通过V8分配的。
2016-08-09 16:11:40 386
原创 Node——内存控制
JS在浏览器中运行的时候并不存在太大的内存问题,我们通常也不刻意的去优化他们,但是当运行在服务器端的时候,运行时间长,这种问题就不得不考虑了。 V8的垃圾回收机制与内存限制 V8的内存限制 在64位下只能使用1.4GB,在32位下0.7GB。即便你的物理内存有32GB,单个Node进程也只能使用这些内存。如果你要将一个2G的文件读到内存里解析,good luck。 V8之所以要限制内存
2016-08-05 17:18:59 4700
原创 Node——异步编程
函数式编程 函数式编程是异步编程的基础,在JS中,将函数作为参数,返回值,都是可以的。这为我们使用回调函数打下了很好的基础。 var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b) { return a - b; }); // [ 1, 5, 10, 25, 40, 100 ] var isTyp
2016-08-04 14:24:24 459
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人