summaryrefslogtreecommitdiff
path: root/benchmark/net
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2015-03-25 02:26:21 -0400
committerBrian White <mscdex@mscdex.net>2015-04-03 00:56:45 -0400
commita081c7c5222de844ed0a61d470b8334676249d66 (patch)
tree7d73dd3adfa2f5b7dbf53801ecd4c96a38315c56 /benchmark/net
parentf1e5a13516d1b7472206fad8c4c20c249c60f1db (diff)
downloadandroid-node-v8-a081c7c5222de844ed0a61d470b8334676249d66.tar.gz
android-node-v8-a081c7c5222de844ed0a61d470b8334676249d66.tar.bz2
android-node-v8-a081c7c5222de844ed0a61d470b8334676249d66.zip
benchmark: fix chunky client benchmark execution
This commit fixes a few things for this benchmark: 1. Ensures the temporary directory for the unix socket exists. 2. Prevents the client code from being run directly because the server script is the one that calls out the client code. 3. Ensures the server is closed once the client benchmarks have finished. 4. Since this is an http benchmark, it should be moved to the http benchmarks subdirectory. PR-URL: https://github.com/iojs/io.js/pull/1257 Reviewed-By: Roman Reiss <me@silverwind.io>
Diffstat (limited to 'benchmark/net')
-rw-r--r--benchmark/net/chunky_http_client.js102
-rw-r--r--benchmark/net/http_server_for_chunky_client.js47
2 files changed, 0 insertions, 149 deletions
diff --git a/benchmark/net/chunky_http_client.js b/benchmark/net/chunky_http_client.js
deleted file mode 100644
index 24e14ca2bc..0000000000
--- a/benchmark/net/chunky_http_client.js
+++ /dev/null
@@ -1,102 +0,0 @@
-'use strict';
-
-// test HTTP throughput in fragmented header case
-var common = require('../common.js');
-var net = require('net');
-var test = require('../../test/common.js');
-
-var bench = common.createBenchmark(main, {
- len: [1, 4, 8, 16, 32, 64, 128],
- num: [5, 50, 500, 2000],
- type: ['send'],
-});
-
-
-function main(conf) {
- var len = +conf.len;
- var num = +conf.num;
- var type = conf.type;
- var todo = [];
- var headers = [];
- // Chose 7 because 9 showed "Connection error" / "Connection closed"
- // An odd number could result in a better length dispersion.
- for (var i = 7; i <= 7 * 7 * 7; i *= 7)
- headers.push(Array(i + 1).join('o'));
-
- function WriteHTTPHeaders(channel, has_keep_alive, extra_header_count) {
- todo = []
- todo.push('GET / HTTP/1.1');
- todo.push('Host: localhost');
- todo.push('Connection: keep-alive');
- todo.push('Accept: text/html,application/xhtml+xml,' +
- 'application/xml;q=0.9,image/webp,*/*;q=0.8');
- todo.push('User-Agent: Mozilla/5.0 (X11; Linux x86_64) ' +
- 'AppleWebKit/537.36 (KHTML, like Gecko) ' +
- 'Chrome/39.0.2171.71 Safari/537.36');
- todo.push('Accept-Encoding: gzip, deflate, sdch');
- todo.push('Accept-Language: en-US,en;q=0.8');
- for (var i = 0; i < extra_header_count; i++) {
- // Utilize first three powers of a small integer for an odd cycle and
- // because the fourth power of some integers overloads the server.
- todo.push('X-Header-' + i + ': ' + headers[i % 3]);
- }
- todo.push('');
- todo.push('');
- todo = todo.join('\r\n');
- // Using odd numbers in many places may increase length coverage.
- var chunksize = 37;
- for (i = 0; i < todo.length; i += chunksize) {
- var cur = todo.slice(i, i + chunksize);
- channel.write(cur);
- }
- }
-
- var success = 0;
- var failure = 0;
- var min = 10;
- var size = 0;
- var mod = 317;
- var mult = 17;
- var add = 11;
- var count = 0;
- var PIPE = test.PIPE;
- var socket = net.connect(PIPE, function() {
- bench.start();
- WriteHTTPHeaders(socket, 1, len);
- socket.setEncoding('utf8')
- socket.on('data', function(d) {
- var did = false;
- var pattern = 'HTTP/1.1 200 OK\r\n';
- if ((d.length === pattern.length && d === pattern) ||
- (d.length > pattern.length &&
- d.slice(0, pattern.length) === pattern)) {
- success += 1;
- did = true;
- } else {
- pattern = 'HTTP/1.1 '
- if ((d.length === pattern.length && d === pattern) ||
- (d.length > pattern.length &&
- d.slice(0, pattern.length) === pattern)) {
- failure += 1;
- did = true;
- }
- }
- size = (size * mult + add) % mod;
- if (did) {
- count += 1;
- if (count === num) {
- bench.end(count);
- } else {
- WriteHTTPHeaders(socket, 1, min + size);
- }
- }
- });
- socket.on('close', function() {
- console.log('Connection closed');
- });
-
- socket.on('error', function() {
- throw new Error('Connection error');
- });
- });
-}
diff --git a/benchmark/net/http_server_for_chunky_client.js b/benchmark/net/http_server_for_chunky_client.js
deleted file mode 100644
index 5439e7226e..0000000000
--- a/benchmark/net/http_server_for_chunky_client.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-var path = require('path');
-var http = require('http');
-var fs = require('fs');
-var spawn = require('child_process').spawn;
-var common = require('../common.js')
-var test = require('../../test/common.js')
-var pep = path.dirname(process.argv[1]) + '/chunky_http_client.js';
-var PIPE = test.PIPE;
-
-var server;
-try {
- fs.unlinkSync(PIPE);
-} catch (e) { /* ignore */ }
-
-server = http.createServer(function(req, res) {
- res.writeHead(200, { 'content-type': 'text/plain',
- 'content-length': '2' });
- res.end('ok');
-});
-
-server.on('error', function(err) {
- throw new Error('server error: ' + err);
-});
-
-try {
- var child;
-
- server.listen(PIPE);
-
- child = spawn(process.execPath, [pep], { });
-
- child.on('error', function(err) {
- throw new Error('spawn error: ' + err );
- });
-
- child.stdout.pipe(process.stdout);
-
- child.on('exit', function (exitCode) {
- console.error('Child exited with code: ' + exitCode);
- });
-
-} catch(e) {
- throw new Error('error: ' + e );
-}
-