vitesse de calcul de php

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


xorax
Nouveau WRInaute
 
Messages: 13
Inscription: Mer Oct 19, 2005 4:43

vitesse de calcul de php

Message le Mar Fév 21, 2006 12:49

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!

oxado
Nouveau WRInaute
 
Messages: 35
Inscription: Jeu Nov 24, 2005 12:44

Re: vitesse de calcul de php

Message le Mar Fév 21, 2006 13:06

xorax a écrit: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.

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mar Fév 21, 2006 13:10

http://pear.php.net/package/Benchmark

A voir si c'est assez précis pour ce que tu veux mesurer

spijoelx
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 249
Inscription: Ven Fév 06, 2004 20:04

Message le Mar Fév 21, 2006 13:14

tu fais un microtime() avant et après et tu fais la différence pour avoir ton résultat


xorax
Nouveau WRInaute
 
Messages: 13
Inscription: Mer Oct 19, 2005 4:43

Message le Mar Fév 21, 2006 13:19

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: Tout sélectionner
<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: Tout sélectionner
<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: Tout sélectionner
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 :?:


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Calculator

  • Calcul du taux de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
  • Indice de co-occurrence et ratio E/F
    Cet outil vous permet de calculer l'indice de co-occurrence de 2 ou 3 termes, ainsi que le ratio E/F. L'indice de co-occurrence mesure le relation entre les termes : plus cet indice est élevé, plus les termes sont reliés. Concrètement, plus l'indice est élevé, plus il est fréquent de trouver des documents qui contiennent les différents termes.
  • Indice de densité
    Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
  • Analyse de popularité
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités