cretthie
Messages postés133Date d'inscriptionmercredi 27 juin 2012StatutMembreDernière intervention10 janvier 2012
-
24 avril 2008 à 00:38
cretthie
Messages postés133Date d'inscriptionmercredi 27 juin 2012StatutMembreDernière intervention10 janvier 2012
-
1 mai 2008 à 22:55
Bonjour,
Comme indiqué dans le titre, j'aimerai bien savoir si la taille d'un tableau de byte est limité. Si oui,
a quelle taille. D'apres moi, comme on peut mettre une taille uniquement avec un integer, la taille max
est un integer. mais est ce inferieur ? Y A-t-il des alternatives ?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 24 avril 2008 à 21:35
Re,
Je suis tout de même curieux de savoir quelles données de cette taille tu voudrais charger en mémoire. Je n'ai aucune fichier de cette taille sur mon DD moi ;p (à part le fichier d'échange peut-etre)
A la limite, tu peux avoir de tels fichiers lorsque tu RIP un film en HD, ou voir un fichier base de données d'un seveur, mais bon...
Si tu veux traiter un fichier de cette taille, ce qu'il faut faire c'est le faire par petits morceaux. Tu charge qq MB du fichiers à traiter, une fois les données traitées, tu les enregistre dans un nouveau fichier. Puis tu recharge qq MB du fichier source, tu traite, et tu les enregistre à la suite dans le nouveau fichier, etc. Une fois toutes les données traité, tu efface le fichier source et tu renomme le nouveau fichier. (même chose pour une copie de fichier)
Comme le dit Renfield, si tu tente de charger tout ca en mémoire, Windows sera obligé de passer par le fichier d'échange (qui est donc un fichier sur le disque-dur dans lequel Windows enregistre les données lorsque la mémoire vive est pleine). Ca obligera donc Windows à faire des échanges entre la mémoire vive et le fichier d'échange complètement inutile, et ca ralentira tout ton processus (et les accès disque de tous les autres processus):
Au pire des cas, ca te donnerait donc ça:
1. Ton fichier -> mémoire vive - Lecture sur le disque-dur
2. Mémoire vive -> fichier d'échange - Ecriture sur le disque dur
3. Fichier d'échange -> mémoire vive - Lecture sur le disque dur
4. Traitement
5. Mémoire vive -> fichier d'échange - Ecriture sur le disque-dur
6. Fichier d'échange -> mémoire vive - Lecture sur le disque-dur
7. Mémoire vive -> ton nouveau fichier - Ecriture sur le disque-dur
Au lieu de ça:
1. Ton fichier -> mémoire vive - Lecture sur le disque-dur
2. Traitement
3. Mémoire vive -> ton nouveau fichier - Ecriture sur le disque-dur
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 24 avril 2008 à 21:42
Ah j'ai pas assez bien lu ton message précédent :)
Tu parle d'un tableau d'1 GB ou de 700 MB, je pense donc que tu veux charger un DivX en mémoire.
Un lecteur vidéo va charger le fichier source (le DivX) au fur et a mesure que la lecture avance (par petits bouts de qq MB), et pas la totalité dès le début. Donc si tu efface le fichier DivX pdt sa lecture, la lecture continue qq secondes (la partie chargé en mémoire) et s'arrete (ce n'est pas le cas avec WMP, car celui-ci fais une copie du fichier à lire dans un dossier tempo)
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 avril 2008 à 23:22
Bonsoir,
Je pense que notre ami ne se réfère pas à l'occupation en mémoire, mais au nombre maximum (auquel il peut se référer) d'élements, dans l'une des dimensions du tableau, du tableau ...
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 25 avril 2008 à 01:18
Oui c'est juste, mais c'est fortement lié. Tout ce que je dis ne répond pas à sa question, mais explique que de toute façon on ne travaillera jamais avec des tableaux dans cet ordre de grandeur. Mais c'est vrai que ça peut être utile de le savoir :-)
Ceci veut dire que Windows ne peut donc pas paginer un tableau, du moins pas pendant sa création.
Chez moi la taille max se trouve entre 578 et 579MB, au dessus: OutOfMemoryException. J'ai 768 MB de RAM
Je suis étonné par la rapidité de la création du tableau... A chaud, ça m'affiche 0 ticks dans la plupart des cas, et qqfois des valeurs max 200 000 ticks (20 ms, certainement la pagination de la mémoire)
cretthie
Messages postés133Date d'inscriptionmercredi 27 juin 2012StatutMembreDernière intervention10 janvier 20121 1 mai 2008 à 22:55
Ok,
En effet, il faudra creer des fichier txt et les reprendre ensuite. apres les supprimer.
je vous remercie a tous pour vos explications.
Je vais tester, mais pour l'instant, j'ai pas le temps, je dois remplir mes impots..
Aux cas ou, je vous dirais ce que je pense de mes testes et resultats les plus performants.. Bla Bla..