From: Bert Belder Date: Tue, 8 May 2012 15:38:02 +0000 (+0200) Subject: Benchmark: clean up http_simple.js X-Git-Tag: v0.7.9~67 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7f68f256cfac319fba1c47f60f5aab008fbb170e;p=platform%2Fupstream%2Fnodejs.git Benchmark: clean up http_simple.js --- diff --git a/benchmark/http_simple.js b/benchmark/http_simple.js index bd0a1c8..cc3ff8e 100644 --- a/benchmark/http_simple.js +++ b/benchmark/http_simple.js @@ -1,18 +1,14 @@ -path = require("path"); -exec = require("child_process").exec; -http = require("http"); +var path = require('path'), + exec = require('child_process').exec, + http = require('http'); -port = parseInt(process.env.PORT || 8000); +var port = parseInt(process.env.PORT || 8000); console.log('pid ' + process.pid); -fixed = "" -for (var i = 0; i < 20*1024; i++) { - fixed += "C"; -} - -stored = {}; -storedBuffer = {}; +var fixed = makeString(20 * 1024, 'C'), + storedBytes = {}, + storedBuffer = {}; var useDomains = process.env.NODE_USE_DOMAINS; @@ -28,68 +24,65 @@ if (useDomains) { } var server = http.createServer(function (req, res) { - if (useDomains) { var dom = domain.create(); dom.add(req); dom.add(res); } - var commands = req.url.split("/"); + var commands = req.url.split('/'); var command = commands[1]; - var body = ""; + var body = ''; var arg = commands[2]; var n_chunks = parseInt(commands[3], 10); var status = 200; - if (command == "bytes") { - var n = parseInt(arg, 10) + if (command == 'bytes') { + var n = ~~arg; if (n <= 0) - throw "bytes called with n <= 0" - if (stored[n] === undefined) { - console.log("create stored[n]"); - stored[n] = ""; - for (var i = 0; i < n; i++) { - stored[n] += "C" - } + throw new Error('bytes called with n <= 0') + if (storedBytes[n] === undefined) { + console.log('create storedBytes[n]'); + storedBytes[n] = makeString(n, 'C'); } - body = stored[n]; + body = storedBytes[n]; - } else if (command == "buffer") { - var n = parseInt(arg, 10) - if (n <= 0) throw new Error("bytes called with n <= 0"); + } else if (command == 'buffer') { + var n = ~~arg; + if (n <= 0) + throw new Error('buffer called with n <= 0'); if (storedBuffer[n] === undefined) { - console.log("create storedBuffer[n]"); + console.log('create storedBuffer[n]'); storedBuffer[n] = new Buffer(n); for (var i = 0; i < n; i++) { - storedBuffer[n][i] = "C".charCodeAt(0); + storedBuffer[n][i] = 'C'.charCodeAt(0); } } body = storedBuffer[n]; - } else if (command == "quit") { + } else if (command == 'quit') { res.connection.server.close(); - body = "quitting"; + body = 'quitting'; - } else if (command == "fixed") { + } else if (command == 'fixed') { body = fixed; - } else if (command == "echo") { - res.writeHead(200, { "Content-Type": "text/plain", - "Transfer-Encoding": "chunked" }); + } else if (command == 'echo') { + res.writeHead(200, { 'Content-Type': 'text/plain', + 'Transfer-Encoding': 'chunked' }); req.pipe(res); return; } else { status = 404; - body = "not found\n"; + body = 'not found\n'; } // example: http://localhost:port/bytes/512/4 // sends a 512 byte body in 4 chunks of 128 bytes if (n_chunks > 0) { - res.writeHead(status, { "Content-Type": "text/plain", - "Transfer-Encoding": "chunked" }); + res.writeHead(status, { 'Content-Type': 'text/plain', + 'Transfer-Encoding': 'chunked' }); // send body in chunks var len = body.length; var step = ~~(len / n_chunks) || len; @@ -102,13 +95,20 @@ var server = http.createServer(function (req, res) { } else { var content_length = body.length.toString(); - res.writeHead(status, { "Content-Type": "text/plain", - "Content-Length": content_length }); + res.writeHead(status, { 'Content-Type': 'text/plain', + 'Content-Length': content_length }); res.end(body); } - }); +function makeString(size, c) { + var s = ''; + while (s.length < size) { + s += c; + } + return s; +} + server.listen(port, function () { console.log('Listening at http://127.0.0.1:'+port+'/'); });