From d3ccdd6f4d872edfb17412722012340a03a2379a Mon Sep 17 00:00:00 2001 From: Rick van der Wal Date: Tue, 19 Dec 2023 14:11:09 +0100 Subject: [PATCH] Fix request parsing in TS benchmark --- benchmarks/README.md | 2 +- benchmarks/ts-node/index.ts | 10 +++++----- benchmarks/urls.txt | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/benchmarks/README.md b/benchmarks/README.md index 8ce264e..2949b77 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -1,7 +1,7 @@ # Nea Benchmarks ```shell -siege -c 4 -b -i -f ../urls.txt +siege -c 4 -b -i -f ../urls.txt -r 10000 ``` ## Rust / Tokio diff --git a/benchmarks/ts-node/index.ts b/benchmarks/ts-node/index.ts index 56d3514..3dc2109 100644 --- a/benchmarks/ts-node/index.ts +++ b/benchmarks/ts-node/index.ts @@ -10,12 +10,12 @@ const server = net.createServer((socket) => { const requestString = data.toString(); // Basic parsing of the request - const [requestLine, remainder] = requestString.split('\r\n', 2); - const [method, path, version] = requestLine.split(' '); + const [headerLines, body] = requestString.split('\r\n\r\n', 2); + const lines = headerLines.split('\r\n'); + const [method, path, version] = lines[0].split(' '); const headers = new Map(); - const [headerLines, body] = remainder.split('\r\n\r\n', 2); - for (const line of headerLines.split('\r\n')) { - const [key, value] = line.split(': '); + for (const line of lines.slice(1)) { + const [key, value] = line.split(': ', 2); headers.set(key, value); } diff --git a/benchmarks/urls.txt b/benchmarks/urls.txt index 11290de..6564213 100644 --- a/benchmarks/urls.txt +++ b/benchmarks/urls.txt @@ -1,2 +1 @@ -127.0.0.1:8000 -127.0.0.1:8000 POST 1,1,2,1,2,2,1,1 +127.0.0.1:8000/10 POST 1, 1\n2, 1\n2, 2\n1, 1