Re: [#!/fr] Tri de fichiers lourds

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Patrick Proniewski
Date:  
À: La liste francophone des scripts shell
Sujet: Re: [#!/fr] Tri de fichiers lourds
On 16 mars 2010, at 09:31, Piel Jayce wrote:

>> Je vais relancer les scripts sur mon macbook pro de fonction dans la matinée pour voir ce que ça donne.
>
> Alors là, je suis vachement déçu par sqllite alors... Je le pensais plus performant...


Je pense qu'Apple a mis son grain de sel dans SQLite, car ce dernier supporte certaines options uniquement sur la plateforme Mac OS X. Donc méfiance, il faudrait re-tester sur un linux ou un FreeBSD, pour comparer.
Par ailleurs, AWK est vraiment fait pour ça, c'est sa raison d'être, c'est normal qu'il soit ultra performant.


> Et sur ces fichiers, la version boucle shell donne quoi ?


ça ne marche pas.
Les deux méthodes SQLite et la méthode AWK donnent le même résultat exactement (un fichier de 5,1 Mo), alors que ton script s'arrête inexplicablement à 339 Ko, après 9 minutes de travail. Si on extrapole cela donne environ 140 minutes pour obtenir le résultat complet.
L'interruption vient peut être de mes data…

Sur mon macbook pro 2x2.8 GHz, 8 Go RAM :

SQLite script 1 : 28 minutes environ
SQLite script 2 : 18 minutes environ
SQLite script 2 modifié avec DB ":memory:" : un peu moins de 13 minutes
Awk : entre 0,3 et 0,5 secondes.

Plusieurs constats :

- Awk est démoniaque, si je n'avais pas eu plusieurs autres résultats de références pour comparer, je me serais dit qu'il se moque de moi.
- L'utilisation dans SQLite d'une table de type :memory: permet d'atteindre des performances supérieures à l'utilisation de simples tables temporaires.
- Sur le script SQLite 1, ~12 minutes sont nécessaires au remplissage de la base de données à partir des fichiers, les ~16 minutes restantes sont pour l'exécution de la requête SQL.

patpro

_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr