retour

Boite à outils en C

Notice

Le présent code est publié sous licence libre (GNU Public icense).

Toute diffusion et utilisation de ce code est envouragée. Pour toute utilisation commerciale, incluant la publication dans une revue, veuillez nous prévenir au préalable.

La dernière version en date est localisée à l'URL http://ilay.org/yann/articles/toolbox/.

Toute remarque, sugestion ou correction est bienvenue et peut être adressée à Yann LANGLAIS.

Description

Cette boîte à outils constitue une bibliothèque dynamique (libtbx.so) compilable avec un compilateur supportant les extensions C99. Il peut être compilé avec gcc version 3.x.

Elle est constituée par les modules suivants:

ComposantDescriptionDomaine
atree/atrarbres ascii pour l'indexation et le parsing exactindexation, parsing exact
hashIndex avec contrainte d'unicité.indexation
indexIndex sans contraine d'unicitéindexation
listListes doublement chaînées génériquesstructuration
btreearbres binaires, structure triée à partir d'une fonction de tristructuration, indexation, tri
treeComposant de base pour la gestion des arbresstructuration
graphComposant de base pour l'implément de graphe dont les éléments sont indexésstructuration
storageStockage mémoire dynamique de tableaux d'éléments identiques (pas de désallocation par élément) allocation
dynaStockage mémoire dynamique de tableaux d'éléments identiques (avec désallocation par élément)allocation
mdbgbibliothèque aidant au débug mémoire (verification de la libération de la mémoire et des débordements)débugger mémoire
mapComposant pour la gestion des i/o via nmap en remplacement de open/closemapped i/o
shmemComposant pour l'utilisation de segments de mémoire partagée IPC : mémoire partagée
dlspybibliothèque de débug des appels aux fonction de la libdl.sodébugger mémoire
srvComposant serveur pour le développement client/serveur à partir des socketsClient/Serveur
cliComposant client pour le développement client/serveur à partir des socketsClient/Serveur
errorAide à l'affichage des messages d'erreur (niveau de log, fichier de sortie, localisation du fichier source et de la fonction en erreur, timestamp, ...)Mécanisme de logging
coverageprimitives permettant de poser des traces et de calculer le temps d'exécution du codeAide au test et débug
optionCode permettant la lecture de fichiers de configuration 
strComposant de gestion des chaines de caractèresstrings C
rexpEncapsulation des fonctions de recherche/remplacement de texte à partir d'expression régulièresEncapsulation de regexp

Les modules atree, hash, list, btree et storage sont particulièrement intéressant pour le traitement en mémoire de données en provenance d'un SGBD.

Les modules memory et coverage sont intéressant lors des phases de débug et d'optimisation du code.

Comparaison des différents mécanismes d'indexation :
  create store find destroy
atree 0.000005 0.010653 1.807883 0.012983
atr 0.000001 0.004158 2.261875 0.004273
index 0.000001 0.005177 2.674241 0.000001
hash 0.000041 0.001042 2.826498 0.000700
btree 0.000004 0.001261 3.972993 0.000433
Statistiques générées par cmp-atha sur Sun/Solaris 8.

Téléchargement

toolbox.tgz




retour