avatar
@bangbang93

标签: mongodb

fibjs vs nodejs(3)

响马回复了

@孢子响马:同时你这个测试中大家的 mongodb 都是一个连接,因此其实在请求 mongodb 时是串行的,所以你这个其实是在测试 mongodb 的 qps

于是改了一下代码,创建了一个500连接的连接池

fibjs

var db = require('db');
var http = require('http');

var connectPool = [];
...

fibjs vs nodejs(4)

突然想到Node.JS中有种很常用的优化方法,是利用异步的特性不管执行是否成功,先返回HTTP响应,于是按照这种方法我又改了一下代码

var http = require('http');
var mongodb = require('mongodb').MongoClient;
mongodb.connect('mongodb://localhost/fibvsnode?maxPoolSiz
...

MongoDB的$where使用NodeJS里的变量

MongoDB的$where允许传递一个JavaScript Function作为判断一个文档是否应该被返回到结果,最简单的比如

$where: function (){
  return !!this.id;
}

当然真要判断id是否存在别用$where,效率太差,它会把集合内的每个对象或者当前选中的所有对象都跑一边这个函数。

但是由于这个function的实际执行者是MongoDB,也...


fibjs vs nodejs

网上见过的对比都是只有一个Hello, world!的输出。其实这毫无意义啊。于是打算自己敲一个对比

大致思路是收到http请求后去mongodb插一条数据,插完返回一段json,用来简单模拟一个创建的请求,以求更贴近业务

先说一下运行环境
CentOS 6.5 X86_64
双路Xeon X5470
16G内存

然后贴代码


先贴fibjs的

var db = require('d
...

fibjs vs node(2)

后来想起来fibjs社区里响马提到用keep-alive测试一发,于是又跑了一遍测试

源码见上篇文章

fibjs

[bangbang93@10-4-14-175 ~]$ ab -n 100000 -c 500 -k http://server.bangbang93.com:12345/
This is ApacheBench, Version 2.3 <$Revision: 65565
...