vitesse de calcul de php

Nouveau WRInaute
salut à tous!

je suis en train de dévellopper un système de sécurisation de transfert de données avec l'algorithme de Diffie-Hellman entre autre et j'aimerais savoir comment calculer la vitesse d'exécution de php sur des opération de puissance et de modulo.

quelqu'un aurait-il une formule approximative ?? il faudrais une formule qui donne le résultat en cycle d'horloge cpu par exemple

Merci!
 
Nouveau WRInaute
xorax a dit:
je suis en train de dévellopper un système de sécurisation de transfert de données avec l'algorithme de Diffie-Hellman entre autre et j'aimerais savoir comment calculer la vitesse d'exécution de php sur des opération de puissance et de modulo.

quelqu'un aurait-il une formule approximative ?? il faudrais une formule qui donne le résultat en cycle d'horloge cpu par exemple

Euh... Il suffit de faire une boucle avec (par exemple) 1000 fois la même opération et de calculer le temps que ça prend, une petite division te donnera le nombre d'opérations par seconde (ou le temps pris par chaque opération, suivant le sens de la division). Il faut évidemment adapter le nombre de répétitions pour avoir un temps significatif (pour éviter les erreurs) mais pas trop long non plus...

Si ta machine ne fait rien d'autre, il te suffit de mesurer le "wall time" (i.e. le temps réel), vu que c'est du 100% pur CPU comme opération. Si ta machine fait d'autres choses, il faut compter le temps CPU (user + system) plutôt, mais je ne sais pas comment on fait en PHP.

Maintenant, j'ai tendance à penser que ça risque d'être horriblement long de faire ça avec un langage interprété comme PHP... Il y a des librairies optimisées pour ça, même en PHP je suis sûr ;->

Jacques.
 
Nouveau WRInaute
jvien d'éssayer de faire un truck comme ça
voilà les résultat sur un P4 3.0GHz HT donc moin rapide qu'un serveur je suppose (parce que apache utilise qu'un seul processeur... :? ) pour ceux que ça interresse

aplication de la formule nbr^e
Code:
<br>e=66   nbr=2345   time=0.00013089179992676
<br>e=66   nbr=23   time=4.6014785766602E-005
<br>e=132   nbr=2345   time=0.00033807754516602
<br>e=132   nbr=23   time=9.2983245849609E-005
<br>e=264   nbr=2345   time=0.0013420581817627
<br>e=264   nbr=23   time=0.00025081634521484
<br>e=528   nbr=2345   time=0.0035789012908936
<br>e=528   nbr=23   time=0.00083804130554199
<br>e=1056   nbr=2345   time=0.011358022689819
<br>e=1056   nbr=23   time=0.0026140213012695
<br>e=2112   nbr=2345   time=0.032015085220337
<br>e=2112   nbr=23   time=0.008634090423584
<br>e=4224   nbr=2345   time=0.10129499435425
<br>e=4224   nbr=23   time=0.025021076202393
<br>e=8448   nbr=2345   time=0.3072030544281
<br>e=8448   nbr=23   time=0.076842069625854
<br>e=16896   nbr=2345   time=0.95268702507019
<br>e=16896   nbr=23   time=0.23299193382263
<br>e=33792   nbr=2345   time=2.7823059558868
<br>e=33792   nbr=23   time=0.7032299041748
<br>e=67584   nbr=2345   time=8.4500279426575
<br>e=67584   nbr=23   time=2.1169030666351
<br>e=135168   nbr=2345   time=25.198705196381
<br>e=135168   nbr=23   time=6.3891258239746

aplication de la formule nbr%m
Code:
<br>m=6   nbr=89394865109840023762841911904532   time=3.0040740966797E-005
<br>m=6   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=18   nbr=89394865109840023762841911904532   time=2.5033950805664E-005
<br>m=18   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=54   nbr=89394865109840023762841911904532   time=2.5033950805664E-005
<br>m=54   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=3.0040740966797E-005
<br>m=162   nbr=89394865109840023762841911904532   time=2.5033950805664E-005
<br>m=162   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=486   nbr=89394865109840023762841911904532   time=2.4080276489258E-005
<br>m=486   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=1458   nbr=89394865109840023762841911904532   time=2.4795532226563E-005
<br>m=1458   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.4080276489258E-005
<br>m=4374   nbr=89394865109840023762841911904532   time=2.4080276489258E-005
<br>m=4374   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=13122   nbr=89394865109840023762841911904532   time=2.3841857910156E-005
<br>m=13122   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=39366   nbr=89394865109840023762841911904532   time=2.4080276489258E-005
<br>m=39366   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=118098   nbr=89394865109840023762841911904532   time=2.3841857910156E-005
<br>m=118098   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=354294   nbr=89394865109840023762841911904532   time=2.4080276489258E-005
<br>m=354294   nbr=8939486510984002376284191190453289394865109840023762841911904532   time=2.5033950805664E-005
<br>m=1062882   nbr=89394865109840023762841911904532   time=2.5033950805664E-005
<br>m=1062882   nbr=8939486510984002376284191190453289394865109840023762841911904532

le calcul des modulo est donc insignifiant comparer au calcul des puissance

et le code toujours pour ceux que ça interresse :
Code:
function microtime_float() {
	list($usec, $sec) = explode(" ", microtime());
	return ((float)$usec + (float)$sec);
}
$e = 33;
$n = 12;
while($n>0){
$e = bcmul($e,2);
$begintime = microtime_float();
bcpow(2345,$e);
echo "\r\n<br>e=$e \t nbr=2345 \t time=".(microtime_float()-$begintime);
$begintime = microtime_float();
bcpow(23,$e);
echo "\r\n<br>e=$e \t nbr=23 \t time=".(microtime_float()-$begintime);
$n--;
}
echo "\n\r<br>\n\r";
$begintime = microtime_float();
$n = 12;
$m=2;
while($n>0){
$m=bcmul($m,3);
$begintime = microtime_float();
bcmod(89394865109840023762841911904532,$m);
echo "\r\n<br>m=$m \t nbr=89394865109840023762841911904532 \t time=".(microtime_float()-$begintime);
$begintime = microtime_float();
bcmod(8939486510984002376284191190453289394865109840023762841911904532,$m);
echo "\r\n<br>m=$m \t nbr=8939486510984002376284191190453289394865109840023762841911904532 \t time=".(microtime_float()-$begintime);
$n--;
}

Mais ça m'interresserait vraiment d'avoir les vrai temps d'horloge pour optimisé tout ça parce que là c'est difficile de sortir des formules exactes....

parce que se serait aussi pour faire des prévisions de temps de calcul que je n'es pas l'intention de réalisé

si quelqu'un les trouve :?:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut