`
bobning
  • 浏览: 60979 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

node.js vs tornado

阅读更多

 

早就听说V8的威力了,由于一直在用tornado做项目,今天特意拿tornadonode.js来做个简单的对比压力测试。结果是node.js胜出。

 

硬件: 普通pc机 双核  内存2g

OS: ubuntu 10.04

 

先说一下node.js的安装:

wget -c http://nodejs.org/dist/node-v0.3.1.tar.gz

# ./configure

# make

# make install

 

如果需要ssl, 则先apt-get install libssl-dev

 

启动基于node.js的web server

脚本web.js如下:

 

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello bobning\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');
 

# node web.js

Server running at http://127.0.0.1:8124/

 

启动基于tornado的web server

tornado就更简单了,在demos下有个helloworld项目,默认端口为8888

# ./helloworld.py --logging=error   #注意把log关闭,否则影响测试结果

 

 

测试开始:

# ab -c10 -n1000 http://127.0.0.1:8124/   #node.js

Concurrency Level:      10

Time taken for tests:   0.208 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Total transferred:      76000 bytes

HTML transferred:       12000 bytes

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

    Time per request:       2.085 [ms] (mean)

    Time per request:       0.208 [ms] (mean, across all concurrent requests)

    Transfer rate:          356.02 [Kbytes/sec] received

 

# ab -c10 -n1000 http://127.0.0.1:8888/   #tornado

Concurrency Level:      10

Time taken for tests:   0.509 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Total transferred:      168000 bytes

HTML transferred:       12000 bytes

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

    Time per request:       5.092 [ms] (mean)

    Time per request:       0.509 [ms] (mean, across all concurrent requests)

    Transfer rate:          322.21 [Kbytes/sec] received

 

猛一点:

# ab -c1000 -n20000 http://127.0.0.1:8124/  #node.js

Concurrency Level:      1000

Time taken for tests:   2.629 seconds

Complete requests:      20000

Failed requests:        0

Write errors:           0

Total transferred:      1520000 bytes

HTML transferred:       240000 bytes

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

    Time per request:       131.471 [ms] (mean)

    Time per request:       0.131 [ms] (mean, across all concurrent requests)

    Transfer rate:          564.52 [Kbytes/sec] received

 

 

# ab -c1000 -n20000 http://127.0.0.1:8888/  #tornado

Concurrency Level:      1000

Time taken for tests:   10.605 seconds

Complete requests:      20000

Failed requests:        0

Write errors:           0

Total transferred:      3360000 bytes

HTML transferred:       240000 bytes

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

    Time per request:       530.228 [ms] (mean)

    Time per request:       0.530 [ms] (mean, across all concurrent requests)

    Transfer rate:          309.42 [Kbytes/sec] received

 

 

 

分享到:
评论
3 楼 范三山 2011-10-15  
lz测试的结果绝对有问题。我用tornado  Requests per second从来没有低于过8k的。
建议重新测试,不要败坏了tornado的名声
2 楼 dongbiying 2011-04-14  
你是在 cygwin 上安装的吗 ! 在windows上安装是不是必须得安装相应的模拟环境呀!
1 楼 dongbiying 2011-04-13  
node.js 怎么安装呀!我没弄明白,麻烦你加我下QQ :892966225

相关推荐

    NODE.JS 脱离浏览器

    ### NODE.JS 脱离浏览器:服务器端JavaScript解析与应用 #### 一、Node.js简介及Hello World示例 Node.js是一种开放源代码、跨平台的JavaScript运行环境,它能够在服务器端执行JavaScript代码,打破了JavaScript...

    WebSocket仿真-Node.js服务器-Node.js开发

    SockJS系列:SockJS客户端JavaScript客户端库SockJS节点Node.js服务器SockJS erlang Erlang服务器SockJS-tornado Python / Tornado服务器vert.x Java / vert.x服务器正在进行中:SockJS-ruby SockJS-netty SockJS...

    Node.js 的异步 IO 性能探讨

    Node.js的出现填补了JavaScript在服务器端编程的空白,构建了一个全异步的生态系统。 在大多数Web应用中,I/O操作(如磁盘读写、网络通信、数据库交互)往往是性能瓶颈。传统解决方案如PHP采用多进程模型,每个进程...

    基于mongodb的api文档管理系统。前端采用angularjs,后端tornado。.zip

    基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,适合用作毕业设计、课程设计作业等,项目均经过测试,可快速部署运行! 基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,...

    jsconf2010

    为了评估 Node.js 的性能,这里提供了一组基准测试结果,将其与 nginx、Thin 和 Tornado 等其他流行的服务端框架进行比较。测试环境为 Linux,使用 Intel Core 2 Duo 2.53GHz 处理器和 4GB 内存。 - **标准的...

    ReactNative-API:通过专有API下载信息,然后在应用程序中显示数据

    [截屏] 技术[REST API]我们有两个API可供使用-放在Node.js和Tornado上-Python。 下载链接如下:) [Expo CLI]用于构建React Native应用程序的界面,我曾用来构建IOS和Web应用程序。 其他: [邮递员]-测试$ git clone...

    程序员为什么还要刷题-SocketTornad.IO:PythonTornado网络服务器框架的socket.io协议

    Node.JS 中完成的,这不太符合我们的需求。 在 Ruby Rack 和 Go 中也有实现,但我们出于与 Node.JS 类似的原因拒绝了这些实现。 这个版本是为了让快乐而设计的。 实现 SocketTornad.IO 作为用户,您唯一的主要要求是...

    PyPI 官网下载 | tornado-uvloop-0.1.0.tar.gz

    libuv是一个跨平台的异步I/O库,最初为Node.js设计,但现在也支持多种语言,包括Python。uvloop将libuv与Python的asyncio结合,通过C语言实现,极大地提高了事件循环的运行速度,使得Python的异步应用性能得到显著...

    tornado-reactjs:在带有模板的 Tornadoweb 服务器中使用 React.js 框架的样板代码

    安装 node.js 安装 Python(2.7 及更高版本) 设置前端 进入/helloworld/client/目录 运行npm install来安装 npm pacakges。 运行gulp 。 这将监视文件更改自动重建前端以进行开发。 要部署到生产环境,请运行...

    WebSocket模拟库SockJS.zip

    SockJS-node Node.js server SockJS-erlang Erlang server SockJS-tornado Python/Tornado server SockJS-twisted Python/Twisted server vert.x Java/vert.x server Work in progress: SockJS-ruby...

    Kotlin Blueprints-Packt Publishing(2017).epub

    Kotlin can be used to create Node.js applications, as the JavaScript code that runs with Node.js can be generated from it. This chapter shows how to do so by creating a simple chat application. ...

    web框架catkeforluvit.zip

    luvit 跟 node.js 类似, 但性能是 node 的 2 到 4 倍。 luvit = luajit2 libuv node 已经脱离了刀耕火种的年代,luvit 还是水深火热中 Q^Q Catke for luvit 是一个简单的 web 框架,让你写 luvit 的时候,不用...

    python 5个顶级异步框架推荐

    Python在3.4引入了 asyncio 库,3.6新增了关键字 async和await,此后,异步框架迅速发展了起来,性能上能和Node.js比肩,除非是CPU密集型任务,否则没有理由不适用异步框架。 如果你是Web开发者,现在异步Web框架上...

    vue全家桶拉勾版含爬虫前后端数据分析

    后端可能采用了Node.js(Express、Koa等框架)、Python(Django、Flask等)或者其他后端语言,负责处理业务逻辑、数据存储和接口设计。 6. **数据分析**:数据分析部分可能使用了如Pandas、NumPy、Matplotlib等...

    后台高级工程师职位描述与岗位职责任职要求.docx

    与Python后台开发经理类似,Node.js后台开发经理同样关注技术评审、架构设计和团队管理。他们需要熟悉Node.js开发,有MySQL、Redis或MongoDB等数据库使用经验。公司的吸引力在于全球项目、高薪资、高福利、国际团队...

    tornado-sockjs-revealjs:带有 tornado 和 sockJS 的 RevealJS 演示文稿,允许在各种类型的设备上实时滑动。 这是我的第一个项目,所以请不要犹豫批评它并帮助我改进;)

    优秀教程( )的启发,用revealJS创建多用户演示 教程中使用的堆栈是只有 Javascript(Yeoman、Grunt 和 Node.js),所以在我学习 Python 时,我想尝试使用 Python 后端来调整应用程序。 我使用了 tornado(因为它...

    A Guide to Porting C C++ to Rust 等53本

    Build a Node.js Project from Scratch.epub Build your applications with Webpack.epub Build Your Own Lisp 中文版.epub C 语言进阶.epub Ceph 运维手册.epub Chromium中文文档.epub Databricks Spark 知识库....

    web聊天室源码

    3. **服务器架构**:Web聊天室需要处理大量并发连接,因此服务器架构通常是基于事件驱动或者异步非阻塞的,如Node.js的Event Loop,Python的Tornado框架等。 二、关键技术 1. **前端技术**:前端界面通常使用HTML...

    nabla 容器的测量和比较_shell_代码_相关文件_下载

    node-express:一个 node.js express 应用程序 redis-test : 一个 redis 键/值服务器 python-tornado : Python 龙卷风网络服务器 每次运行都会runtest.bash设置内核ftrace工具、运行容器、打开相关pids 的跟踪、提供...

    websocket聊天室demo

    1. **服务器端**:通常使用Node.js、Python的Tornado库或者Java的Jetty等实现,监听WebSocket连接,并处理来自多个客户端的消息。 2. **客户端**:在HTML5中使用WebSocket API来创建连接、发送和接收消息。浏览器的...

Global site tag (gtag.js) - Google Analytics