注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

snoopyxdy的博客

https://github.com/DoubleSpout

 
 
 

日志

 
 

加装涡轮,提速expressjs  

2013-06-21 13:46:44|  分类: node |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在汽车世界里,对于指定排量和发动机的车辆想要进一步压榨发动机性能,比较直接的办法就是加装涡轮增压套件,增加发动机进气量从而提升发动机的输出功率
expressjs作为nodejs中比较热门的http框架被广大用户接受和使用,其性能也一直很受大家关注,我最近开发了两个模块 iroute 和 ifile 模块,可以用来给expreesjs加装涡轮增压器,提升expressjs框架的整体性能。

iroute模块具有简单路由功能
irotue模块项目地址:
介绍地址:
安装方法:

npm install iroute


ifile模块主要功能是对静态文件的输出
ifile模块项目地址:
介绍地址:
安装方法:

npm install ifile

iroute和ifile模块都具有简单的api,高性能和跨平台特点,都在win8,linux,mac上测试通过,可以说是适合各种工况,欢迎大家下载试用,或者有什么功能特点我没考虑周全的更可以留言给我,不胜感激啊。


最后附上测试结果:

说明:注册get方式的1000个路由,直接get请求第1001个url,静态文件输出为同一个test.js,大小为6kb。


纯exppress

express only(1000 routes)

ab -c 100 -n 20000 http://192.168.28.5:8127/test/

Requests per second:    1271.83 [#/sec] (mean)


ab -c 500 -n 20000 http://192.168.28.5:8127/test/

Requests per second:    1237.43 [#/sec] (mean)


ab -c 800 -n 20000 http://192.168.28.5:8127/test/

Requests per second:    1191.17 [#/sec] (mean)


express only (static)

ab -c 100 -n 20000 http://192.168.28.5:8127/js/test.js

Requests per second:    918.91 [#/sec] (mean)


ab -c 500 -n 20000 http://192.168.28.5:8127/js/test.js

Requests per second:    806.83 [#/sec] (mean)


ab -c 800 -n 20000 http://192.168.28.5:8127/js/test.js

Requests per second:    701.42 [#/sec] (mean)


ab -c 500 -n 20000 -H "Accept-Encoding: gzip" http://192.168.28.5:8127/js/test.js

Requests per second:    596.43 [#/sec] (mean)


express+ifile+iroute

express+ifile+iroute (1000 routes)

ab -c 100 -n 20000 http://192.168.28.5:8128/test/

Requests per second:    1886.01 [#/sec] (mean)


ab -c 500 -n 20000 http://192.168.28.5:8128/test/

Requests per second:    1773.27 [#/sec] (mean)


ab -c 800 -n 20000 http://192.168.28.5:8128/test/

Requests per second:    1829.89 [#/sec] (mean)


express+ifile+iroute (static)

ab -c 100 -n 20000 http://192.168.28.5:8128/js/test.js

Requests per second:    1544.94 [#/sec] (mean)


ab -c 500 -n 20000 http://192.168.28.5:8128/js/test.js

Requests per second:    1655.26 [#/sec] (mean)


ab -c 800 -n 20000 http://192.168.28.5:8128/js/test.js

Requests per second:    1438.74 [#/sec] (mean)


ab -c 500 -n 20000 -H "Accept-Encoding: gzip" http://192.168.28.5:8128/js/test.js

Requests per second:    1591.59 [#/sec] (mean)

路由方面性能提升大约50%,在静态文件输出方面性能提升超过100%,真的是给expressjs框架增加了一个强有力的涡轮增压器了。

最后附上测试代码:

expressjs

var express = require('express');

var connect = require('connect')

var app = express();

app.use(connect.compress());

app.use('/js', express.static(__dirname+'/js'));

var len = 1000;

for(var i=0;i<len;i++){

app.get('/user/'+i+'/info/', function(req, res){

 res.send('hello world2');

});

}

app.get('/test/', function(req, res){

 res.send('test');

});

app.listen(8127);


expressjs+ifile+iroute

  var express = require('express');

  var app = express();

  var iroute = require("iroute");

  var ifile = require("ifile");

  var array = [];

  for(var i=0;i<1000;i++){

array.push(["get:/user/"+i+"/info/",function(req,res){res.end('hello world')}])

  }

  array.push(["get:/test/",function(req,res){res.end('test')}])

  app.use(ifile.connect([["/js",__dirname]]));

  app.use(iroute.connect(array))

  app.listen(8128);


  评论这张
 
阅读(1464)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016