islem1982
Messages postés22Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention 4 octobre 2007
-
6 juil. 2007 à 11:41
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 2013
-
5 déc. 2007 à 20:11
Bonjour tout le monde,
Je suis actuellement en train de développer une applciation qui utilise énormément d'opérations d'union (de l'ordre de 2$n$ opérations avec n un nombre variant de 70 à 1.000.000). J'ai pensé
qu'il serait judicieux d'utiliser les tabelaux de bits afin diminuer la
consommation en temps d'exécution de ces opérations. Cependant, il
existe deux catégories de tableaux de bits :
1- La première est celle proposée dans la bibliothèque STL qui est présentée sous deux versions:
a- les bitsets: conteneur permettant d'effectuer divers
opérations logiques (Ou, Et, Xor...etc) mais leur taille doit être
définie à travers une constante.
b- Les vecteurs de bits "vector": J'ai remarqué
qu'elles sont moins performantes dans les opérations logiques mais
elles offrent le fait que le nombre de bits peut être modifié à
n'importe quel moment de l'exécution du programme.
2- La deuxième est celle proposée par la bibliothèque Boost
"dynamic_bitset": elle offre un jeux d'opérations riche afin de
manipuler avec aisance les tableaux de bits mais les performances
demeurent inférieures (d'après les stats que j'ai collecté) à celles
des variantes des tableaux de bits proposés dans STL.
Vu que les bitsets de STL offrent les meilleures performances
temporelles (les opérations logiques sont très rapides), je les ai
intégré dans mon programme. Le problème est leur taille définie par une
constante qui doit être fixe. Ceci me contraint à définir le nombre $n$
à chaque exécution dans le code source du programme, à recompiler le
tout et à exécuter.
Je me demandai si quelqu'un connait une solution afin que le programme
puisse saisir à partir de l'utilisateur le nombre $n$ et fixer la
taille des bitsets à $n$.
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 6 juil. 2007 à 16:35
salut j'ai regardé le code asm produit par gcc pour un bitset de la STL, franchement autant faire ta propre structure façon C ça sera presque aussi clair en C, et beaucoup beaucoup plus clair dans le code asm produit !
islem1982
Messages postés22Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention 4 octobre 2007 2 oct. 2007 à 04:00
J'aurais bien aimé générer ma propre classe mais toutes les tentatives que j'ai faite (C,C++) ont abouti à des classes qui sont moins performantes que celle de la STL.
Pourrez-vous m'indiquer pourquoi à votre avis?
Ou pourrez-vous m'indiquer une classe prête qui me permettra d'implémenter efficacement les tableaux de bits dynamiques?
Merci d'avance.
SIGMA