summaryrefslogtreecommitdiffstats
path: root/benchmarks/server.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-21 20:56:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-21 20:56:19 +0000
commit0b6210cd37b68b94252cb798598b12974a20e1c1 (patch)
treee371686554a877842d95aa94f100bee552ff2a8e /benchmarks/server.js
parentInitial commit. (diff)
downloadnode-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.tar.xz
node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.zip
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'benchmarks/server.js')
-rw-r--r--benchmarks/server.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/benchmarks/server.js b/benchmarks/server.js
new file mode 100644
index 0000000..e1a32e8
--- /dev/null
+++ b/benchmarks/server.js
@@ -0,0 +1,33 @@
+'use strict'
+
+const { unlinkSync } = require('fs')
+const { createServer } = require('http')
+const os = require('os')
+const path = require('path')
+const cluster = require('cluster')
+
+const socketPath = path.join(os.tmpdir(), 'undici.sock')
+
+const port = process.env.PORT || socketPath
+const timeout = parseInt(process.env.TIMEOUT, 10) || 1
+const workers = parseInt(process.env.WORKERS) || os.cpus().length
+
+if (cluster.isPrimary) {
+ try {
+ unlinkSync(socketPath)
+ } catch (_) {
+ // Do nothing if the socket does not exist
+ }
+
+ for (let i = 0; i < workers; i++) {
+ cluster.fork()
+ }
+} else {
+ const buf = Buffer.alloc(64 * 1024, '_')
+ const server = createServer((req, res) => {
+ setTimeout(function () {
+ res.end(buf)
+ }, timeout)
+ }).listen(port)
+ server.keepAliveTimeout = 600e3
+}