Permalink
Browse files

Improve domain usage in http_simple benchmark

There were two problems with the way domains were used in the benchmark:

a) A global domain was created. IMO this is not how one would normally
use domains, as an error caught by a global domain would be just as
difficult to handle as an 'uncaughtException' one. More importantly:
Setting up a global domain makes implicit domain member tracking
expensive as per-request domains will now also be tracked as members of
the global domain.

b) The per-request domains created in the benchmark were never entered.
While it didn't have an impact on the performance of the benchmark, it
does seem a bit pointless to not enter the domains, so this patch causes
them to be entered.
  • Loading branch information...
1 parent 16cbec0 commit 44a0f7417b78a2d32bc0434670c5a924dd8d85b7 @felixge committed Jun 29, 2012
Showing with 1 addition and 7 deletions.
  1. +1 −7 benchmark/http_simple.js
View
@@ -13,22 +13,16 @@ var fixed = makeString(20 * 1024, 'C'),
var useDomains = process.env.NODE_USE_DOMAINS;
-// set up one global domain.
if (useDomains) {
var domain = require('domain');
- var gdom = domain.create();
- gdom.on('error', function(er) {
- console.log('Error on global domain', er);
- throw er;
- });
- gdom.enter();
}
var server = http.createServer(function (req, res) {
if (useDomains) {
var dom = domain.create();
dom.add(req);
dom.add(res);
+ dom.enter();
}
var commands = req.url.split('/');

0 comments on commit 44a0f74

Please sign in to comment.