Calcul Pi cu nodejs si Dart

Categorii: Programare

12-May-2020 17:57 - 55 vizionari

O continuare la Calcul Pi in c, go, JavaScript, Ducktape si Lua.

Am inceput sa invat Dart si imi place, deja am testat cateva solutii in Flutter (acum ma joc cu Flutter) folosind limbajul Dart.

Dart

Curios cat de rapid este Dart, am rulat un mic test:

calcul_pi_dart

Aproximativ 7 secunde pentru 300 de milioane de iteratii.

Scriptul dart:


double calcul_pi(double N){
   print('N are ${N/1e6} milioane');
   double pi = 2;
   var t1 = DateTime.now().millisecondsSinceEpoch;
   var sec = 0;
   for(int i = 1; i < N; i++){
      pi = pi * 2*i * 2*i / (2*i-1) /(2*i+1);
   }
   var t2 = DateTime.now().millisecondsSinceEpoch;
   var durata = t2-t1;
   print('pi=$pi');
   print('durata [ms]: ${durata}');
   return pi;
}


void main(){
   calcul_pi(3e8);
}

Node.js

Dar JavaScript rulat sub Node.js este un pic mai rapid:

calcul_pi_node_js

Scriptul rulat sub Node.js cu modulul express (server de web):


const express = require('express')
const app = express()
const port = 80

app.get('/', function (req, res){
	console.log('index', req)
	return res.send('<html>Hello World! - <a href="/pi">pi</a>')
})

app.get('/pi', function (req, res){
	var pi = calcul_pi(3e8)
	return res.send(`Pi=${pi}`)
})

app.listen(port, () => console.log(`Calcul pi app listening at http://localhost:${port}`))

function calcul_pi(N){
   console.log('N are', N/1e6, 'milioane');
   var pi = 2;
   t1 = new Date().getTime();
   var sec = 0;
   for(i = 1; i < N; i++){
      pi = pi * 2*i * 2*i / (2*i-1) /(2*i+1);
   }
   t2 = new Date().getTime();
   console.log('     pi=',pi);
   console.log('Math.PI=',Math.PI);
   console.log('durata [ms]:', (t2-t1));
   return pi;
}

Aproape 5 secunde pentru 300 de milioane de iteratii.



Ultimele pagini: RSS

Alte adrese de Internet

Categorii

Istoric


Atentie: Continutul acestui server reprezinta ideile mele si acestea pot fi gresite.