choix d'un type de base de données
introduction
Afick s'appuie sur des bibliothèques perl pour construire la base de données contenant les
informations sur les fichiers. Il se trouve que PERL offre un certain choix quant à cette base de données. Pour
simplifier le codage, Afick a très longtemps utilisé le seul type de base de données disponible sur toutes les
plateformes : SDBM (ces bibliothèques faisant partie du "noyau" perl).
Pour des problèmes de performances, ou de taille de base de données, il peut etre interessant d'utiliser une autre
base de donnée, ce qui est possible depuis la version 2.9.0 d'Afick.
les differents type de base
SDBM
disponibilité
le type de base que l'on est sur de trouver avec chaque perl.
performance
taille de la base
GDBM
disponibilité
performance
taille de la base
NDBM
ODBM
DB
mes benchs
Après avoir cherché un moment le bon code de test, j'ai fini par utiliser Afick lui-même.
redhat 7.3/legacy
redhat |
creation |
mise a jour |
sdbm |
11'59 |
10'24 |
gdbm |
7'54 |
6'50 |
debian sarge
debian |
creation |
mise a jour |
sdbm |
|
|
gdbm |
|
|
mandrake 9.2
mandrake |
creation |
mise a jour |
sdbm |
41'75 |
51'76 |
gdbm |
43'61 |
53'27 |
commentaires
Comme indiqué dans la doc perl (
perldoc -f AnyDBM_File
, ou
man AnyDBM_File
), les performances dependent des optimisations faites par ceux qui ont fabriqué le package
perl.
Selon les plateformes, on voit des gains très net (x2) en passant de SDBM à GDBM (redhat, debian), ou rien
(mandrake). Je vous encourage donc a faire vous-meme le test pour choisir la meilleure base pour votre machine :
time afick.pl -i --dbm=SDBM_File
time afick.pl -i --dbm=GDBM_File
changer de type de base
afick -i --dbm
retour a la page principale