Optimisation mémoire des tableaux

Signaler
Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
J'ai conçu un prog qui édite les fichiers en hexa et texte avec possibilité de recherche et de comparaison.
Je place le contenu du fichier en mémoire et je n'édite que les caractères visibles dans la textbox.

Le pb est que pour les gros fichiers j'arrive en saturation de mémoire, car je réserve aussi en mémoire 2 fois la taille des fichiers (2 fichiers pouvant être chargés à la fois) pour l'édition des lignes de comparaison.

Quelle optimisation puis-je mettre en place?

[I]Zifnig[I]

7 réponses

Messages postés
85
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
5 octobre 2004

Salut. Tu pourrais peut-être segmenter le fichier et ne travailler que sur des portions. A l'affichage tu crées un système de page...
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
128
Et pourquoi ne pas les stocker sur disque, l'accès serait peut-être un peu plus long, mais plus de problème de mémoire saturée : j'utilise ce système pour l'un de mes projet qui demande beaucoup de calcul pour tracer une image, et je charge les images du disque selon les volontés de l'utilisateur, je pense que c'est réalisable avec du texte tout en maintenant une rapidité honnête.

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

Quand tu dis que tu arrives à saturation mémoire ? il faudrait préciser un peu :
- la mémoire dont tu disposes sur ton PC
- la taille du fichier que tu souhaites charger en mémoire

Sinon la suggestion de Fulgy est intéressante.

A+

Afyn
Navedac
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Oui etrange comme saturation surtout si c'est de la memoire virtuelle essaie un mapping de fichier ou alors edite les fichiers en direct ou comme dit Dark fait s'en une copie avant

@+

E.B.
Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013

Le prog peut charger 2 fichiers à la fois (pour la comparaison).
Je crée donc 2 tableaux pour pour les octets en hexa des 2 fichiers, 2 tableaux pour la repésentation ascii des octests, 2 tableaux pour contenir les numéros de lignes dans le fichier pour l'affichage ascii, 2 tableaux 2 dimensions pour l'affichage des comparaisons (de taille double des autres).
la mise en mémoire me permet un affichage du contenu des fichiers hyper rapide (index dans le fichier avec un vscroll et affichage uniquement des lignes visible dans la textbox).

Le bas blesse pour les gros fichiers (> 3 Mo) où là la mise en mémoire et la comparaison deviennent très lents et pour les très gros fichiers (> 6 Mo) où je dépasse la capacité mémoire.

en vb, y-a-t-il mieux que les tableaux pour indicer des données en mémoire?

Zifnig
Messages postés
85
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
5 octobre 2004

Au lieu d'utiliser des tableaux, tu peux utiliser des collections mais je sais pas si ça te fait gagner de la place en mémoire et/ou de la rapidité d'accès à tes données. De toute façon si tu veux que ton prog sois bien, il faut revoir ta méthode de gestion des fichier pour ne plus être limité par la taille, modifier tout tes tableaux en collections (par exemple) ne résoudra pas ce problème. A+
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
128
Non, au contraire : les collections prennent plus de place que les tableaux, et sont bien plus lentes lorsqu'il y a beaucoup d'objets dans la collection !

Tu peux soit utiliser un fichier formaté pour accèder rapidement aux données, soit carrément une base de données pour optimiser l'accès aux données (c'est quasi instantané avec une base qui est bien conçue).

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer