under my test, routing is not only 5%. I will show my benchmark soon.

2012/4/28 tjholowaychuk <[email protected]>

> I can personally guarantee you routing will be less than 5% of your
> bottleneck, focus on real-world problems, and profile first
>
> On Friday, 27 April 2012 10:39:57 UTC-7, Jason.桂林 wrote:
>>
>> I tested that express is a little slower then non-express code. I
>> planning to design a new web framework and I also design a benchmark tool,
>> to make sure my framework is fast.
>>
>> My basic thinking is fast routing, fast session, in memory cache and
>> clean code.
>>
>> The first step is fast routing, I use a mechanism multi routing,
>>
>> *1st is hash routing, e.g. app.get('/user/login', login),  will routing
>> by handlers['/user/login'](req, res);*
>> *
>> *
>> *2nd is multi hash routing, e.g. app.get('/user/:id/edit', editprofile),
>> will routing by handlers['user']['*']['edit'](req, res);*
>> *
>> *
>> *3rd is match routing, e.g. app.get(/user\/edit-(\d+)/, editprofile),
>> will routing by handlers.forEach(function(rule) { if(rule.test(req.path)
>> handlers[rule](req, res) })*
>> *
>> *
>> but before do this, I have to design the routing api. is sinatra like api
>> good enough?  when I coding, I still need seprate the routings to different
>> files, so we have below code
>>
>> 1: in app.js:
>>
>>>   app.get('/user/login', routes.user.login)
>>
>>
>> or 2: in routes/user.js :
>>
>>   var app = require('../app');
>>>   app.get('/user/login, function(req, res, next) { // code here });
>>
>>
>> or 3
>> in app.js:
>>
>>>    require('./routes')(app);
>>
>>
>> in routes/user.js
>>
>>     module.exports = function(app) {
>>>       app.get('/routes/user', function(req, res, next){// code here})
>>>     }
>>
>>
>> Did you see the problem?
>>
>> We can just map  `get.user.login` to GET '/user/login' to save typing and
>> ignore circulate dependency.
>>
>> get/index.js
>>> var app = module.export
>>> // url: /  url: /index  goes here
>>> app.index = function(req, res) {}
>>> // url: /user goes here and all request of /user/* not found matchs goes
>>> here
>>> app.user = require('./user')
>>> get/user.js
>>> // url: /user/  and url: /user/index goes here
>>> user.index = function(req, res){}
>>> // url: /user/login goes here
>>> user.login = function(req, res) {}
>>
>>
>> but this method has a problem, how define param routing and regex routing?
>>
>> What do you think about all these things?
>>
>> --
>> Best regards,
>>
>> Jason Green
>> 桂林
>>
>>
>>   --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>



-- 
Best regards,

Jason Green
桂林

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to