UNPKG

841 BJavaScriptView Raw
1
2
3var Threads= require('threads_a_gogo');
4
5
6function cb (err, msg) {
7 this.destroy();
8 ++i;
9 process.stdout.write('\n'+ msg + ' -> '+ this.id);
10}
11
12function pi () {
13 var π= 0;
14 var num= 4;
15 var den= 1;
16 var plus= true;
17
18 while (den < 1e7) {
19 if (plus) {
20 π+= num/den;
21 plus= false;
22 }
23 else {
24 π-= num/den;
25 plus= true;
26 }
27 den+= 2;
28 }
29 return π;
30}
31
32
33var i= +process.argv[2] || 1;
34console.log('Using '+ i+ ' threads');
35
36var precompiled= Threads.preCompile('('+ pi+ ')()');
37var t= Date.now();
38while (i--) {
39 Threads.create().eval(precompiled, cb);
40}
41
42
43i= 0;
44process.on('exit', function () {
45 t= Date.now()- t;
46 var tps= (i*1e3/t).toFixed(1);
47 console.log('\nTiempo total (ms) -> '+ t);
48 console.log('Threads por segundo -> '+ tps);
49 console.log('Total de threads ejecutadas -> '+ i);
50});