Bonjour,
J ai un petit soucis pour organise mes donne ou plustot des doute sur ce qui est le plus utimale. Je voudrais votre avis sur mes choix.
Tout d'abord bravo et Merci si vous liser mon post jusqu au bout .
j ai une grande quantite de donne que je dois manipuler .
Pour simplifier mes donnees viennent d'environ 30 capteurs.
j ai aux moins: YYYY, MM, JJ, HH, mm, second, info1, et info2,
pour econnomiser un peu de place en memoire, je mettrais
YYYYMMJJHH dans un Uint,
mm Ushort
second Ushort
info1 et 2 dans un float ( pas trop le choix) les valeur allant de 0 a 2000 et sont toujours 6 chiffres ex:1500,89 ou 1,45879
Je voudrais idealement qu elle prennent le moins de place possible en memoire tout en me deplacent a l interieur de celle ci le plus rapidement possible.
1) la premier chose qui m est venu a l espris c ets de prendre toutes les donen de chaque acquisition et de les mettres telquel dans une std::list et au moment de la creation ( insertion) je mettrais dans std::set un iterateur (ou un pointeur) sur le premeir element de chaque jour.
ce qui m interesse principalement c ets de pouvoir passe d'un element n a n+1 le plus vite possible ( de n a n-1) peu etre plus lent.
Le probleme c ets que j ai vraiemnt becoup de donne environ 30000000 ( 30millions oui) par capteur , soit a la louche 1g0 de donen par capteur. C est gerable en une seul fois car le pc avec lequel je bosse a 12go ( vive le 64 bytes) , je trouve quand emem ca un peu limite.
2) je me suis dit que je vais econnomise sur les info redondante.
ja i donc decouper ca ainsi
Class A contient une map de <YYYYMMJJ(int),ObjetdeB>
Class B contient une map de <HHmm(Ushort),ObjetdeC>
Class C contient une list de Objet de D
Class D contient , 2 float(inof 1 et2) et un short( second)
a la Louche j estime que cette structre me ferai gagne environ 30% de espace memoire.
Mais la j ai plusieur question :
A)et ce que passer d une aquisition a une autre ne va pas me demander beaucoup plus de temp a final ?
B) etant une peu perferctioniste je voudrai evite de construire dans ma class qui remplie A ( et toutes les autre par la meme ocasion) un objetBtemporaire qui serai rempli par un objet C temporaire
je voudrai eviter ce genre de chose dans la class qui remplirai:
je voudrais appeler une focntion de A style
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Map2 m; m.insert (make_pair (1.2, Map1 ())); m[1.2].insert (make_pair (3, "three")); m[1.2].insert (make_pair (5, "five")); m.insert (make_pair (.5, Map1 ())); m[.5].insert (make_pair (5, "five")); m[.5].insert (make_pair (1, "one")); m[.5].insert (make_pair (9, "nine"));
add(YYYY, MM, JJ, HH, mm, second, info1, et info2)
qui appelerai B avec
add( HH, mm, second, info1, et info2)
qui applerrai C avec
add ( second, info1, et info2)
qui applerrai D avec
add ( second, info1, et info2)
LE comble du comble serai que je mettre touts les capteur dans une listla ca ferai vraiment usine a gaz , mais je ne voie pa trop d'alternative
Merci de vos commentaires.
Partager