性能测评:Node.JS比Java EE快20%

c2u 2013-11-01 07:28:26
国外某工程师写了一段简单测试脚本,用以比较Java EE和Node.js的性能,结果另他大吃一惊,作为脚本语言的Node.js在竟然比编绎型语言还快了20%,而且还是在不考虑内存消耗的情况下。

他在Mac平台上从CunchDB数据库读取JSON数据,两段测试代码都很短,而且很简单, 代码和结果如下:

Java EE

package com.shinetech.couchDB;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import com.fourspaces.couchdb.Database;
import com.fourspaces.couchdb.Document;
import com.fourspaces.couchdb.Session;

@SuppressWarnings("serial")
public class MyServlet extends HttpServlet {
Logger logger = Logger.getLogger(this.getClass());
Session s = new Session("localhost",5984);
Database db = s.getDatabase("testdb");

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
String id = req.getPathInfo().substring(1);
PrintWriter out = res.getWriter();
Document doc = db.getDocument(id);
if (doc==null){
res.setContentType("text/plain");
out.println("Error: no document with id " + id +" found.");
} else {
res.setContentType("application/json");
out.println(doc.getJSONObject());
}
out.close();
}
}

结果

Concurrent Requests Average Response time (ms) Requests/second

10 23 422

50 119 416

100 243 408

150 363 411

Node

var http = require ('http'),
url = require('url'),
cradle = require('cradle'),
c = new(cradle.Connection)(
'127.0.0.1',5984,{cache: false, raw: false}),
db = c.database('testdb'),
port=8081;

process.on('uncaughtException', function (err) {
console.log('Caught exception: ' + err);
});

http.createServer(function(req,res) {
var id = url.parse(req.url).pathname.substring(1);
db.get(id,function(err, doc) {
if (err) {
console.log('Error'+err.message);
res.writeHead(500,{'Content-Type': 'text/plain'});
res.write('Error' + err.message);
res.end();
} else {
res.writeHead(200,{'Content-Type': 'application/json'});
res.write(JSON.stringify(doc));
res.end();
}
});
}).listen(port);


结果:

Concurrent Requests Average Response time (ms) Requests/second

10 19 509

50 109 453

100 196 507

150 294 506


转自: ourjs
...全文
414 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
只是_曾经 2013-11-04
  • 打赏
  • 举报
回复
你想说明什么?抛弃java,拥抱node.js吗?
xuan.ye 2013-11-04
  • 打赏
  • 举报
回复
node.js 是不错,比较而言,开发成本和难度,明显大于java呀。 .net 1人干的活=java 3人= node.js 的一个团队,如果真想做个大项目,用node.js到可以,可是有几个真正意义上的大项目?大多数都需要实现及其复杂的业务逻辑,使用 node.js太慢了,老板会不高兴的
c2u 2013-11-04
  • 打赏
  • 举报
回复
引用 14 楼 zssazrael 的回复:
表示 Node.js 再怎么牛,市场还是 Java EE 的。
以后就不好说了,我们公司正在去Java化……
幽饮烛 2013-11-02
  • 打赏
  • 举报
回复
表示 Node.js 再怎么牛,市场还是 Java EE 的。
Mr-稻帅 2013-11-02
  • 打赏
  • 举报
回复
不明白楼主是要表达什么呢?
sunbo624 2013-11-01
  • 打赏
  • 举报
回复
JavaEE慢是正常的 不可能有又高级又高效的东西 越贴近底层效率越高 这是必然的 J2EE的卖点里一向都没有效率这个词
coooliang 2013-11-01
  • 打赏
  • 举报
回复
doc.getJSONObject()很慢,不过要看对象的复杂程度,如果对象中包含容器和对象,那么会用循环+递规。慢慢慢。
xietingyan 2013-11-01
  • 打赏
  • 举报
回复
jee不可能比js慢,js本身支持json结构,让他测试换成直接返回字符串试试?
聪头 2013-11-01
  • 打赏
  • 举报
回复
只是某一方面。
zyrobert 2013-11-01
  • 打赏
  • 举报
回复
听起来很不错的样子
异常异长 2013-11-01
  • 打赏
  • 举报
回复
然后咧?。。
想喝咖啡的貓 2013-11-01
  • 打赏
  • 举报
回复
Java比C慢20%以上,比Java更慢的语言,在网络上也活的很好,速度不是评价开发语言的唯一标准
c2u 2013-11-01
  • 打赏
  • 举报
回复
引用 10 楼 huxiweng 的回复:
各有利弊吧,我知道Node.js有几家大公司都在用的
Java正在走向封闭……
teemai 2013-11-01
  • 打赏
  • 举报
回复
各有利弊吧,我知道Node.js有几家大公司都在用的
ghostkngiht 2013-11-01
  • 打赏
  • 举报
回复
口水仗,语言适合项目,适合人员就行了,何必争个高低。
sunbo624 2013-11-01
  • 打赏
  • 举报
回复
引用 7 楼 c2u 的回复:
[quote=引用 6 楼 sunbo624 的回复:] JavaEE慢是正常的 不可能有又高级又高效的东西 越贴近底层效率越高 这是必然的 J2EE的卖点里一向都没有效率这个词
嗯,个人认为Java运行相当安全,不会死机……[/quote] 死不死取决于自己的程序吧 而且我不会认为Java吃CPU能吃到死 通常都是CPU没事内存不够了
c2u 2013-11-01
  • 打赏
  • 举报
回复
引用 6 楼 sunbo624 的回复:
JavaEE慢是正常的 不可能有又高级又高效的东西 越贴近底层效率越高 这是必然的 J2EE的卖点里一向都没有效率这个词
嗯,个人认为Java运行相当安全,不会死机……

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧