JeuWeb - Crée ton jeu par navigateur
BenchMark By Cartman - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : BenchMark By Cartman (/showthread.php?tid=2777)

Pages : 1 2


BenchMark By Cartman - Cartman34 - 19-07-2008

Bonjour,

Ce sujet est assez sérieux mais je n'ai pas trouvé de partie du forum plus adaptée.
Afin de faire avancer les choses, je me suis mis au benchmark.
J'ai déjà fait différents test de temps sur mysql et je viens vous apporter les résultats.
Ces test ont été effectués sur mon serveur local UNIX.

Expériences

== MYSQL ==

Numéro: 1
Test de: Connexion MySQL
Nombre de test effectués: 5.000
Temps moyen d'exécution: 40 microsecondes.

Numéro: 2
Test de: Requete SELECT * sur un table de 84 entrées.
Nombre de test effectués: 10.000
Temps moyen d'exécution: 407 microsecondes.

Numéro: 3
Test de: Connexion + BOUCLE de 20 tours{Test 2} + Fermeture de la connexion
Nombre de test effectués: 5.000
Temps moyen d'exécution: 7210 microsecondes.

Numéro: 4
Test de: BOUCLE de 20 tours{Connexion + Test 2 + Fermeture de la connexion}
Nombre de test effectués: 5.000
Temps moyen d'exécution: 7417 microsecondes.


== Fichiers ==

Numéro: 5
Test de: Inclusion par include() d'un fichier de 360 lignes.
Nombre de test effectués: 100.000
Temps moyen d'exécution: 1663.15268 microsecondes.


== Conditions ==

Numéro: 6
Test de: IF "true" -> VRAI
Nombre de test effectués: 10.000
Temps moyen d'exécution: 18 microsecondes.

Numéro: 7
Test de: IF "1 == true" -> VRAI
Nombre de test effectués: 10.000
Temps moyen d'exécution: 18 microsecondes.

Numéro: 8
Test de: IF "1 === 1" -> VRAI
Nombre de test effectués: 10.000
Temps moyen d'exécution: 18 microsecondes.

Numéro: 9
Test de: IF "1 == 0" -> FAUX
Nombre de test effectués: 10.000
Temps moyen d'exécution: 18 microsecondes.


Conclusions

== MYSQL ==

Ceci semble beaucoup plus rapide que ce qu'on en dit, en effet mysql montre des temps très faibles et cela surtout pour la connexion qui est dit particulièrement lente !


== Fichiers ==

Le temps semble bien long mais vu le nombre de test, l'erreur semble minime.
L'inclusion d'un fichier PHP est donc relativement lente.


== Conditions ==

Je pense que nous pouvons en conclure par mal de chose sur les conditions...vu que les temps sont tous égaux !
Il ne semble pas y avoir de différence pour PHP.

EDIT: 19/07/08: 2 Tests ajoutés sur proposition de Shivaan Keldon


RE: BenchMark By Cartman - Shivaan Keldon - 19-07-2008

je comptais faire un sujet de ce genre dans pas longtemps. tu m'as devancé Smile

edit : je retire ma question, la réponse était déjà présente. faut que je change d'yeux ^^

en tout cas, bravo. c'est une excellente idée, ces tests de charge.
par contre, je pense que benchmark est pour les tests hardware. mais bon, on s'en tape un peu. c'est le résultat qui compte ^^


RE: BenchMark By Cartman - Cartman34 - 19-07-2008

Shivaan Keldon-> Selon Wikipédia: "En informatique, un benchmark est un banc d'essai permettant de mesurer les performances d'un système pour le comparer à d'autres."
C'est donc assez général pour etre utilisé ici ^^

Oxman-> J'ai pensé que ces nombres étaient suffisants, car 1.000.000 peut prendre beaucoup de temps et en physique/maths le nombre de tests se porte entre 1.000 et 10.000. Cependant c'est réalisable meme si très long.
Apparemment, mes temps sont par contre plus précis.
Je vais refaire ces tests.


RE: BenchMark By Cartman - Anthor - 19-07-2008

J'aimerais bien savoir avec quel script tu pratiques tes tests


RE: BenchMark By Cartman - Cartman34 - 19-07-2008

Un script assez simple, cependant je n'ai pas reconfiguré mon php(je ne l'ai fais que rarement pour le temsp d'exécution...) alros bon...
"Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 558 bytes) in /home/florent/www/tests/benchmark/bm_if.php on line 18"
Mon serveur ne supporte pas les 1.000.000 de tests...

Voici un exemple de script:

Code PHP :
<?php
ini_set
("max_execution_time",0);

include(
"includes/functions.php");

$FileToInclude = 'vars.php';
$DayTime = $Dif = array();
$TestNb = 1000000;


for(
$i=1; $i<=$TestNb; $i++) {
$DayTime[0] = gettimeofday();

if(
1 == 0) {

}

$DayTime[1] = gettimeofday();
$DayTime[0]['MegaUsec'] = $DayTime[0]['sec']*1000000 + $DayTime[0]['usec'];
$DayTime[1]['MegaUsec'] = $DayTime[1]['sec']*1000000 + $DayTime[1]['usec'];
$Dif[$i] = $DayTime[1]['MegaUsec'] - $DayTime[0]['MegaUsec'];
}
$Average = array_sum($Dif)/$TestNb;
echo
"Moyenne= $Average<br />";
?>



RE: BenchMark By Cartman - Shivaan Keldon - 19-07-2008

IGstaff : ha ben tu vois, on en apprend tous les jours. merci de la précision Smile

oxman : même si tu es dans le vrai quant à la réelle persistance des tests d'IGstaff, il faut quand même avouer qu'ils nous donnent déjà une bonne base de départ. on a déjà une petite idée du temps moyen que prend une instruction.
après, libre à nous d'étayer tout ça (ce qui est déjà en cours apparemment)

en bref, je trouve l'idée de lancer ce sujet excellente, vu les récentes discussions. ça fera avancer le schmilblik Smile


RE: BenchMark By Cartman - Cartman34 - 19-07-2008

Pas plus que microtime ^^, enfin j'espère pas.
De plus, je peux calculé le temps d'erreur en ne mettant rien en test.
Sauf que microtime ne me retourne jamais un resultat précis, il faudrait y faire un explode et cela ralentirait le script.

Cependant j'ai actuellement un problème, j'ai refais un test IF sur 100.000 et le résultat est soit 17.5 soit 22-23 microsecondes.
Ces résultats sont bien trop différents...


RE: BenchMark By Cartman - Shivaan Keldon - 19-07-2008

l'avantage de la solution d'oxman, c'est que la durée est calculée en dehors de la boucle, et non dedans. ça permet donc de voir réellement le temps d'exécution, même si macrotime prend un peu de ressource


RE: BenchMark By Cartman - Cartman34 - 19-07-2008

Il est vrai que mon script était fait pour les tests de temps un par un au départ et que j'ai pensé que ce modèle serait efficace pour les grands nombres mais en fait non...Je vais modifier cela...les tests à vide me rendait 17 microsecondes...c'est énorme !
Et cela à cause de l'assignation de variables !

EDIT: je reviens sur ce que j'ai dit !!! J'ai mis l'assignation car dans tes tests oxman, il faut compter le temps de ta boucle !


RE: BenchMark By Cartman - Cartman34 - 19-07-2008

après avoir testé ton dernier script oxman, il s'avère etre le meilleur avec seulement entre 1 et 2 microseconde d'erreur.

Mais je n'ai plus le temps de (re)faire les tests ce matin.