diff options
Diffstat (limited to 'node_modules/webworker-threads/benchmark/b01_fibonacci_server_threads.js')
| -rw-r--r-- | node_modules/webworker-threads/benchmark/b01_fibonacci_server_threads.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/node_modules/webworker-threads/benchmark/b01_fibonacci_server_threads.js b/node_modules/webworker-threads/benchmark/b01_fibonacci_server_threads.js new file mode 100644 index 0000000..dbedc87 --- /dev/null +++ b/node_modules/webworker-threads/benchmark/b01_fibonacci_server_threads.js @@ -0,0 +1,42 @@ + + +function fib (n) { + return (n < 2) ? 1 : fib(n-2)+ fib(n-1); +} + +//We're going to use n threads +var numThreads= +process.argv[3] || 1; +console.log("Using "+ numThreads+ " threads"); + +var threads= []; +var round_robin= 0; +var t= require('threads_a_gogo'); +while (numThreads--) { + threads.push(t.create().eval(fib)); +} + +var i= 0; +var n= 35; +function ƒ (req, res) { + if ((++i) % 10) { + res.end(" QUICK"); + process.stdout.write(" QUICK"); + } + else { + round_robin= (++round_robin) % threads.length; + threads[round_robin].eval('fib('+ n+ ')', function cb (err, data) { + if (err) throw err; + var txt= ' '+ data; + res.end(txt); + process.stdout.write(txt); + }); + } +} + + +var port= +process.argv[2] || 1234; +var http= require('http'); +http.globalAgent.maxSockets= 8192+2048; +http.createServer(ƒ).listen(port); +console.log('Fibonacci server (WITH THREADS) running @port: '+ port); + |
