Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2930 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Question sur la gestion mémoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question sur la gestion mémoire

n°1155618
mr simon
Posté le 21-07-2005 à 10:39:22  profilanswer
 

Bonjour,  
 
Dans un programme type client serveur, j'ai crée une classe qui s'occupe de lire les entré du socket. Pour lire les données je fait cette boucle :
 

Code :
  1. DataInputStream reader = new DataInputStream(socket.openDataInputStream());
  2.   while (run) {
  3.    int sizeRead = reader.readInt();
  4.    if (sizeRead > 0) {
  5.        byte[] bufferData = new byte[sizeRead];
  6.     reader.read(bufferData,0,sizeRead);
  7.            queue.addElement(bufferData);
  8.    }
  9.   }


 
Je me demande ce que deviennet les objets alloués par new byte[sizeRead], Cela ne risque-t-il pas de surcharger la mémoire? car cette application a pour but de tourner sur un pda ou un telephone.
 
Ne vaudrait-il pas mieux que j'alloue un buffer une fois pour toute ?
 
Merci pour votre aide.

mood
Publicité
Posté le 21-07-2005 à 10:39:22  profilanswer
 

n°1155720
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-07-2005 à 11:27:48  profilanswer
 

inutile d'allouer un buffer entier, vu que tu n'as besoin à un instant donné que d'une petite partie de ce buffer.
ce que tu peux faire, c'est mettre la référence bufferData à null une fois que tu l'as placée dans ta queue, ce qui indique  au garbage collector qu'il peut libérer la mémoire pointée par cette référence


---------------
J'ai un string dans l'array (Paris Hilton)
n°1155743
mr simon
Posté le 21-07-2005 à 11:35:39  profilanswer
 

Ok merci pour ta réponse

n°1156457
the real m​oins moins
Posté le 21-07-2005 à 19:25:00  profilanswer
 

Harkonnen a écrit :

inutile d'allouer un buffer entier, vu que tu n'as besoin à un instant donné que d'une petite partie de ce buffer.


sa façon de lire m'a l'air passablement louche, mais je ne vois pas non plus ce que tu veux dire, toi :D
edit: ha oui, si, ça y est.
 

Harkonnen a écrit :


ce que tu peux faire, c'est mettre la référence bufferData à null une fois que tu l'as placée dans ta queue, ce qui indique  au garbage collector qu'il peut libérer la mémoire pointée par cette référence


absolument inutile, la reference en question étant locale à la boucle; non ?


Message édité par the real moins moins le 21-07-2005 à 19:26:50

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Question sur la gestion mémoire

 

Sujets relatifs
[ question aux gurus sql ] est ce faisable algorithmiquement en sql ?vbs et html question (a priori)
[C] astuces needed, gestion/browsing dans fichiersgestion d'une connexion ppp en php ?
débordement de la mémoireGestion de news
question généralequestion sur les array()
FreeImage liberation memoireJ'ai une question sur le onMouseOver
Plus de sujets relatifs à : Question sur la gestion mémoire


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)