IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Open source et architecture logicielle

JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs

Noter ce billet
par , 07/04/2016 à 19h36 (1153 Affichages)
Ce billet fait écho à une réponse à l'actualité pourquoi JavaScript est adapté au Big Data.
Un internaute me faisait remarquer que selon lui, un langage adapté au Big Data pourrait faire la moyenne d'un tableau de 10 millions de floaten moins de 2 secondes, alors que JavaScript moulinerait bien plus longtemps.
J'ai donc décidé de faire le test. Je n'ai pas fait le test sur des floatmais sur des double car en JavaScript, les numériques sont codés sur 8 octets et non sur 4. Mais comme on dit qui peut le plus peut le moins.
Afin d’être certain de trouver des nombres composés de nombreux chiffres après la virgule. Je propose que chaque élément du tableau vaille : 1023 * index / 23
Je m'offre le luxe de faire la mesure de l'opération de remplissage du tableau et du calcul de la moyenne.
Je fais également le test en Java pour faire une comparaison. Les 2 tests sont réalisés sur un vieux céléron avec 2 Go de Ram.
Voici le code source des exécutables
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void main(String[] args) {
		int maxLength = 10000000;
		long start = System.currentTimeMillis();
		double array[] = new double[maxLength];
		double somme = 0;
		double moyenne = 0;
		for (int i = 0; i < maxLength; i++)
		  array[i] = 1023*(double)i/23;
		for (int i = 0; i < maxLength; i++)
		  somme += array[i];
		moyenne = somme/array.length;
		long stop = System.currentTimeMillis();
		long lasting = stop-start;
		System.out.println(moyenne);
		System.out.println("temps d'execution = " + lasting + " ms");	
	}
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var maxLength = 10000000;
var array = [];
var somme = 0;
var moyenne = 0;
var start = Date.now();
for (var i = 0; i < maxLength; i++)
  array.push(1023*i/23);
for (var i = 0; i < maxLength; i++)
  somme += array[i];
moyenne = somme/array.length;
var stop = Date.now();
var lasting = stop - start;
console.log(moyenne);
console.log("temps d'execution = " + lasting + " ms");
Aux résultats on obtient une exécution du code java en 127 ms et en JavaScript en 262 ms.
Bien évidemment le résultat (la moyenne des 10 millions de double) est le même pour les 2 langages et vaut 222391282.10869563
On remarque que pour ce calcul, Java est 2 fois plus rapide que JavaScript. Mais on remarque que JavaScript est au minimum 8 fois plus rapide que ce que l'on pourrait attendre d'un mauvais langage (bien plus de 2 secondes).
Donc pour le moment je persiste à dire que JavaScript même pour du back est sans doute un langage éligible au Big Data.
Si quelqu'un se propose de faire subir un bench mark plus révélateur je serais heureux d'en être un élément proactif.

Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog Viadeo Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog Twitter Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog Google Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog Facebook Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog Digg Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog Delicious Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog MySpace Envoyer le billet « JavaScript un langage adapté pour le Big Data (partie 2) : tests comparatifs » dans le blog Yahoo

Tags: big data
Catégories
Java , Javascript , Développement Web

Commentaires