This repository has been archived by the owner on Oct 15, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 340
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'nodejs/master' into chnext
- Loading branch information
Showing
2,365 changed files
with
87,449 additions
and
48,896 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,3 +6,4 @@ test/fixtures | |
test/**/node_modules | ||
test/disabled | ||
test/tmp*/ | ||
tools/doc/node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
// test UDP send throughput with the multi buffer API against Buffer.concat | ||
'use strict'; | ||
|
||
const common = require('../common.js'); | ||
const PORT = common.PORT; | ||
|
||
// `num` is the number of send requests to queue up each time. | ||
// Keep it reasonably high (>10) otherwise you're benchmarking the speed of | ||
// event loop cycles more than anything else. | ||
var bench = common.createBenchmark(main, { | ||
len: [64, 256, 512, 1024], | ||
num: [100], | ||
chunks: [1, 2, 4, 8], | ||
type: ['concat', 'multi'], | ||
dur: [5] | ||
}); | ||
|
||
var dur; | ||
var len; | ||
var num; | ||
var type; | ||
var chunk; | ||
var chunks; | ||
var encoding; | ||
|
||
function main(conf) { | ||
dur = +conf.dur; | ||
len = +conf.len; | ||
num = +conf.num; | ||
type = conf.type; | ||
chunks = +conf.chunks; | ||
|
||
chunk = [] | ||
for (var i = 0; i < chunks; i++) { | ||
chunk.push(new Buffer(Math.round(len / chunks))); | ||
} | ||
|
||
server(); | ||
} | ||
|
||
var dgram = require('dgram'); | ||
|
||
function server() { | ||
var sent = 0; | ||
var received = 0; | ||
var socket = dgram.createSocket('udp4'); | ||
|
||
var onsend = type === 'concat' ? onsendConcat : onsendMulti; | ||
|
||
function onsendConcat() { | ||
if (sent++ % num == 0) | ||
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); | ||
} | ||
} | ||
|
||
socket.on('listening', function() { | ||
bench.start(); | ||
onsend(); | ||
|
||
setTimeout(function() { | ||
var bytes = sent * len; | ||
var gbits = (bytes * 8) / (1024 * 1024 * 1024); | ||
bench.end(gbits); | ||
}, dur * 1000); | ||
}); | ||
|
||
socket.on('message', function(buf, rinfo) { | ||
received++; | ||
}); | ||
|
||
socket.bind(PORT); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
// test UDP send/recv throughput with the multi buffer API | ||
'use strict'; | ||
|
||
const common = require('../common.js'); | ||
const PORT = common.PORT; | ||
|
||
// `num` is the number of send requests to queue up each time. | ||
// Keep it reasonably high (>10) otherwise you're benchmarking the speed of | ||
// event loop cycles more than anything else. | ||
var bench = common.createBenchmark(main, { | ||
len: [64, 256, 1024], | ||
num: [100], | ||
chunks: [1, 2, 4, 8], | ||
type: ['send', 'recv'], | ||
dur: [5] | ||
}); | ||
|
||
var dur; | ||
var len; | ||
var num; | ||
var type; | ||
var chunk; | ||
var chunks; | ||
var encoding; | ||
|
||
function main(conf) { | ||
dur = +conf.dur; | ||
len = +conf.len; | ||
num = +conf.num; | ||
type = conf.type; | ||
chunks = +conf.chunks; | ||
|
||
chunk = [] | ||
for (var i = 0; i < chunks; i++) { | ||
chunk.push(new Buffer(Math.round(len / chunks))); | ||
} | ||
|
||
server(); | ||
} | ||
|
||
var dgram = require('dgram'); | ||
|
||
function server() { | ||
var sent = 0; | ||
var received = 0; | ||
var socket = dgram.createSocket('udp4'); | ||
|
||
function onsend() { | ||
if (sent++ % num == 0) | ||
for (var i = 0; i < num; i++) | ||
socket.send(chunk, PORT, '127.0.0.1', onsend); | ||
} | ||
|
||
socket.on('listening', function() { | ||
bench.start(); | ||
onsend(); | ||
|
||
setTimeout(function() { | ||
var bytes = (type === 'send' ? sent : received) * len; | ||
var gbits = (bytes * 8) / (1024 * 1024 * 1024); | ||
bench.end(gbits); | ||
}, dur * 1000); | ||
}); | ||
|
||
socket.on('message', function(buf, rinfo) { | ||
received++; | ||
}); | ||
|
||
socket.bind(PORT); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
// test UDP send/recv throughput with the "old" offset/length API | ||
'use strict'; | ||
|
||
const common = require('../common.js'); | ||
const PORT = common.PORT; | ||
|
||
// `num` is the number of send requests to queue up each time. | ||
// Keep it reasonably high (>10) otherwise you're benchmarking the speed of | ||
// event loop cycles more than anything else. | ||
var bench = common.createBenchmark(main, { | ||
len: [1, 64, 256, 1024], | ||
num: [100], | ||
type: ['send', 'recv'], | ||
dur: [5] | ||
}); | ||
|
||
var dur; | ||
var len; | ||
var num; | ||
var type; | ||
var chunk; | ||
var encoding; | ||
|
||
function main(conf) { | ||
dur = +conf.dur; | ||
len = +conf.len; | ||
num = +conf.num; | ||
type = conf.type; | ||
chunk = new Buffer(len); | ||
server(); | ||
} | ||
|
||
var dgram = require('dgram'); | ||
|
||
function server() { | ||
var sent = 0; | ||
var received = 0; | ||
var socket = dgram.createSocket('udp4'); | ||
|
||
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); | ||
} | ||
|
||
socket.on('listening', function() { | ||
bench.start(); | ||
onsend(); | ||
|
||
setTimeout(function() { | ||
var bytes = (type === 'send' ? sent : received) * chunk.length; | ||
var gbits = (bytes * 8) / (1024 * 1024 * 1024); | ||
bench.end(gbits); | ||
}, dur * 1000); | ||
}); | ||
|
||
socket.on('message', function(buf, rinfo) { | ||
received++; | ||
}); | ||
|
||
socket.bind(PORT); | ||
} |
Oops, something went wrong.