PERFORMANCES
Les durées d'exécution divergent assez sensiblement selon les plates-formes. Pour 2 000 questionnaires
HTML de 120 ko chacun, comprenant 120 lignes (au sens d'IDSS), 36
variables et un total de 192 items de saisie, avec
un ordinateur portable fabriqué en 2003, équipé d'un processeur Intel Mobile
Celeron cadencé à 2,4 GHz et 512 Mo DDR, les résultats suivants ont été obtenus
pour la génération de la base à séparateurs (option -B) :
Linux | Windows XP | Cygwin (sous Windows XP) |
< 20 secondes de temps processeur (minimum 14 secondes sur 20 tests) 20 à 25 secondes de temps réel |
75 à 85 secondes de temps réel | > 4 minutes de temps réel |
Le mode silencieux -W a été utilisé pour diminuer la durée d'exécution dans les trois cas.
Sous Linux, l'exécution
minimale d'IDSS en mode silencieux (options -ir -B -e -s -W) est
légèrement moins rapide que la compression gzip
du répertoire des questionnaires (commande 'tar -cf9z'), mais
trois fois plus rapide que la copie du répertoire des questionnaires
dans un autre système de fichiers ('cp -R') et quatre fois plus rapide
que la compression bzip2
(commande 'tar -cf9j'). Ces ordres de grandeur sont
indicatifs, et susceptibles de varier en fonction du
matériel.
L'utilisation
d'un algorithme écrit en C et limité aux besoins essentiels de
l'exploitation des questionnaires a ainsi permis de diminuer la durée
d'exécution de la lecture des documents (input parsing).
A l'inverse, certains logiciels professionnels utilisent des
algorithmes généralistes (notamment des expressions régulières), dont
les routines complexes permettent de varier la mise en forme
au prix de
performances moindres.
Les langages interprétés couramment
utilisés pour analyser les documents HTML (VBA sous Windows, Python et
Perl dans les systèmes Unix) permettent également d'effectuer des
tâches variées, mais les temps d'exécution requis sont supérieurs à
ceux d'IDSS d'un ordre de grandeur au moins.
Ces tests comparatifs amènent à recommander l'utilisation de Linux (ou plus généralement d'un standard POSIX) pour traiter de grands volumes de données.