summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/dgram/array-vs-concat.js20
-rw-r--r--benchmark/dgram/multi-buffer.js10
-rw-r--r--benchmark/dgram/offset-length.js10
-rw-r--r--benchmark/dgram/single-buffer.js10
4 files changed, 35 insertions, 15 deletions
diff --git a/benchmark/dgram/array-vs-concat.js b/benchmark/dgram/array-vs-concat.js
index 669cf47df4..d260a48063 100644
--- a/benchmark/dgram/array-vs-concat.js
+++ b/benchmark/dgram/array-vs-concat.js
@@ -29,17 +29,25 @@ function main({ dur, len, num, type, chunks }) {
function onsendConcat() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(Buffer.concat(chunk), PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(Buffer.concat(chunk), PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
function onsendMulti() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
diff --git a/benchmark/dgram/multi-buffer.js b/benchmark/dgram/multi-buffer.js
index a1c50551b8..7b69a82255 100644
--- a/benchmark/dgram/multi-buffer.js
+++ b/benchmark/dgram/multi-buffer.js
@@ -27,9 +27,13 @@ function main({ dur, len, num, type, chunks }) {
function onsend() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
diff --git a/benchmark/dgram/offset-length.js b/benchmark/dgram/offset-length.js
index 7c672acae2..696fa6a7a0 100644
--- a/benchmark/dgram/offset-length.js
+++ b/benchmark/dgram/offset-length.js
@@ -23,9 +23,13 @@ function main({ dur, len, num, type }) {
function onsend() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, 0, chunk.length, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, 0, chunk.length, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
diff --git a/benchmark/dgram/single-buffer.js b/benchmark/dgram/single-buffer.js
index d183b9cd1d..5c95b17887 100644
--- a/benchmark/dgram/single-buffer.js
+++ b/benchmark/dgram/single-buffer.js
@@ -23,9 +23,13 @@ function main({ dur, len, num, type }) {
function onsend() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}