summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2018-10-23 15:02:30 -0700
committerGitHub <noreply@github.com>2018-10-23 15:02:30 -0700
commita4fb5175cecc62573eaf3406154ece2938f45b88 (patch)
treee30de5f2fdb55db0171d681bf0ec7e447b0eca77
parente9bf2064164df4f5712addca2cd4d18faf3e149a (diff)
Add node_tcp target to http_benchmark. (#1074)
-rw-r--r--tests/http_bench.ts1
-rwxr-xr-xtools/http_benchmark.py18
-rw-r--r--tools/node_tcp.js18
3 files changed, 32 insertions, 5 deletions
diff --git a/tests/http_bench.ts b/tests/http_bench.ts
index 89d53ad1d..0c7970691 100644
--- a/tests/http_bench.ts
+++ b/tests/http_bench.ts
@@ -1,6 +1,7 @@
// Used for benchmarking Deno's networking. See tools/http_benchmark.py
// TODO Replace this with a real HTTP server once
// https://github.com/denoland/deno/issues/726 is completed.
+// Note: this is a keep-alive server.
import * as deno from "deno";
const addr = deno.args[1] || "127.0.0.1:4500";
const listener = deno.listen("tcp", addr);
diff --git a/tools/http_benchmark.py b/tools/http_benchmark.py
index a039484b7..a2148ba45 100755
--- a/tools/http_benchmark.py
+++ b/tools/http_benchmark.py
@@ -22,6 +22,12 @@ def node_http_benchmark():
return run(node_cmd)
+def node_tcp_benchmark():
+ node_cmd = ["node", "tools/node_tcp.js", ADDR.split(":")[1]]
+ print "http_benchmark testing node_tcp.js"
+ return run(node_cmd)
+
+
def hyper_http_benchmark(hyper_hello_exe):
hyper_cmd = [hyper_hello_exe, ADDR.split(":")[1]]
print "http_benchmark testing RUST hyper."
@@ -29,11 +35,13 @@ def hyper_http_benchmark(hyper_hello_exe):
def http_benchmark(deno_exe, hyper_hello_exe):
- deno_rps = deno_http_benchmark(deno_exe)
- node_rps = node_http_benchmark()
- hyper_http_rps = hyper_http_benchmark(hyper_hello_exe)
-
- return {"deno": deno_rps, "node": node_rps, "hyper": hyper_http_rps}
+ r = {}
+ # TODO Rename to "deno_tcp"
+ r["deno"] = deno_http_benchmark(deno_exe)
+ r["node"] = node_http_benchmark()
+ r["node_tcp"] = node_tcp_benchmark()
+ r["hyper"] = hyper_http_benchmark(hyper_hello_exe)
+ return r
def run(server_cmd):
diff --git a/tools/node_tcp.js b/tools/node_tcp.js
new file mode 100644
index 000000000..d4ed6db40
--- /dev/null
+++ b/tools/node_tcp.js
@@ -0,0 +1,18 @@
+// Copyright 2018 the Deno authors. All rights reserved. MIT license.
+// Note: this is a keep-alive server.
+const { Server } = require("net");
+const port = process.argv[2] || "4544";
+console.log("port", port);
+
+const response = Buffer.from(
+ "HTTP/1.1 200 OK\r\nContent-Length: 12\r\n\r\nHello World\n"
+);
+
+Server(socket => {
+ socket.on("data", _ => {
+ socket.write(response);
+ });
+ socket.on("error", _ => {
+ socket.destroy();
+ });
+}).listen(port);