 |
Vitesse de W3Perl
|
|
Une des critiques les plus justifiée concernant l'utilisation
de W3Perl reste la vitesse d'éxécution. Bien sur, le logiciel
n'est pas capable de rivaliser avec ceux écrits en C.
Vous trouvez ici quelques tests effectués sur plusieurs ordinateurs.
Le résultat indique une vitesse de traitement de l'ordre de 1000
lignes par seconde.
|
|
|
Lignes par secondes
|
Les statistiques ont été calculées sur un Pentium III
450 Mhz 128 Mo sous Linux.
Le nombre de lignes rejetées n'ont pas été pris en compte, ce qui signifie que seules les lignes traitées sont
affichées.
Un point correspond à un jour, donc une journée demande entre
3 et 20 secondes de calcul.
Pour donner un ordre d'idée sur les accés, il y a 10 000 hits
par jour, ou alors le fichier de log a une taille d'environ 1,8 Mo.
Huit mois de log ont été calculé.
|
|
|
CPU timing
|
Si vous désirez m'envoyer vos temps de calcul, n'hésitez pas.
Un fichier est produit dans /data/cputime, libre à vous de me l'envoyer.
Site Web |
Intervalle |
Taille du log (compressé) |
Hits / jour |
CPU (résolution dns off) |
OS |
Vitesse (lignes / sec) |
W3Perl |
73 jours |
3,5 Mo |
5,000 |
3 min 55 |
PIII 450 (Linux) |
1000 |
W3Perl |
421 jours (14 mois) |
11 Mo |
2,000 |
16 min 20 |
PIII 450 (Linux) |
1000 |
INRP |
30 jours |
3,6 Mo |
10,000 |
4 min 59 |
PIII 450 (Linux) |
1000 |
INRP |
244 jours (8 mois) |
47 Mo |
10,000 |
36 min 00 |
PIII 450 (Linux) |
1000 |
Pour donner un ordre de grandeur, les fichiers de log compressés
sont 90% plus petit ques des fichiers non compressés.
|
|
|
Conseils
|
Pour augmenter la vitesse de traitement :
- N'utilisez pas l'option de résolution dns. Interroger un
serveur dns peut prendre plusieurs secondes pour chaque requêtes
malgrè le fait que les données sont stockées dans
un cache ultérieurement. On peut gagner un facteur de trois à
cinq en vitesse.
Si votre fichier de log ne contient que des adresses IP non résolues,
les statistiques sur les pays ne pourront pas être calculées sans
actionner cette option de résolution dns.
- Ne sélectionez pas trop de pages dans la variable @selection.
- N'utilisez qu'une seule sortie de langage.
|
|
|