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

  FORUM HardWare.fr
  Programmation
  Java

  Boucle qui bouffe ma ram

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle qui bouffe ma ram

n°200301
kakou
bin voila
Posté le 23-08-2002 à 01:05:26  profilanswer
 

Voila j'essai de faire un logiciel qui capture des image avec ma webcam et cette boucle use mes 200mo en quelques secondes. et comme je n'y connait rien en libération de mémoire ...
 

Code :
  1. new JFrame("test" );
  2.             setTitle("aaa" );
  3.             setSize(600,400);
  4.             ImagePanel a;
  5.             Processor p;
  6.             PushBufferDataSource pbSrc;
  7.             PushBufferStream[] strms;
  8.             PushBufferStream camStream;
  9.             VideoFormat rgbf;
  10.             BufferToImage conv;
  11.             Image i;
  12.             BufferedImage image;
  13.             Graphics g2;
  14.             Buffer b = new Buffer();
  15.             while(true){
  16.                 p = Manager.createProcessor(src);
  17.                 System.out.println("a" );
  18.                 p.realize();
  19.                
  20.                 while(p.getState()!=javax.media.Controller.Realized){}
  21.                
  22.                 // Need to wait here for RealizeCompleteEvent
  23.                 p.start();
  24.                 pbSrc =(PushBufferDataSource)p.getDataOutput();
  25.                 strms =pbSrc.getStreams();
  26.                 camStream = strms[0]; // Should test Format
  27.                 rgbf =(VideoFormat)camStream.getFormat();
  28.                 conv = new BufferToImage(rgbf);
  29.                
  30.                 // To get an Image
  31.                 camStream.read(b);
  32.                 i = conv.createImage(b);
  33.                
  34.                 image=new BufferedImage(i.getWidth(null),i.getHeight(null),BufferedImage.TYPE_INT_RGB);
  35.                 g2 = image.createGraphics();
  36.                 g2.drawImage(i,0,0,null);
  37.                 try{
  38.                     OutputStream os =
  39.                     new FileOutputStream("image.jpg" );
  40.                     JPEGImageEncoder encoder =
  41.                     JPEGCodec.createJPEGEncoder(os);
  42.                     encoder.encode(image);
  43.                     os.close();
  44.                 } catch (IOException e) {
  45.                     e.printStackTrace();
  46.                 }
  47.                 a = new ImagePanel(i);
  48.                 getContentPane().add(a);
  49.                 show(); 
  50.             }

mood
Publicité
Posté le 23-08-2002 à 01:05:26  profilanswer
 

n°200302
benou
Posté le 23-08-2002 à 01:11:27  profilanswer
 

j'ai pas totu compris, mais dans ta boucle, y a un truc sur lequel tu appelles start() sans jamais faire de stop, donc ca me parait bizare.
 
y a aussi le fait que tu fais des add d'une image sur un le contentPane de ta Frame. Peut-être qu'il faudrait faire un remove un coup de temps en temps ...  
 
enfin bon, je connais pas les lib que tu utilises donc c'est pas évident de voir comme ca ...

n°200468
kakou
bin voila
Posté le 23-08-2002 à 12:34:56  profilanswer
 

la lib c'est jmf
 
c'est vrai que j'ai oublié quelques remove
 
je crois que si je fais un stop ca coupe la cam enfin je vais essayer

n°200472
darklord
You're welcome
Posté le 23-08-2002 à 12:37:56  profilanswer
 

kakou a écrit a écrit :

la lib c'est jmf
 
c'est vrai que j'ai oublié quelques remove
 
je crois que si je fais un stop ca coupe la cam enfin je vais essayer




 
bin tu as une thread qui boucle en permanence c'est normal  :sarcastic:  
 
j'ai vraiment l'impression qu'on répéte tout le temps la meme chose sur ce forum.
 
Imagine que tu dois couper du bois. Et que dès que tu as coupé un bout de bois tu prends un autre et qu'il y a une infinité de bois. Au bout d'une heure tu risques d'etre très fatiguée. Bin ton programme là c'est pareil sauf qu'il VA BEAUCOUP PLUS VITE (et donc il est bcp plus vite fatigué).
 
Conclusion. Faut le faire dormir un peu (2h pour toi, quelque centaines de msec pour ta thread)


Message édité par darklord le 23-08-2002 à 12:38:09
n°200474
darklord
You're welcome
Posté le 23-08-2002 à 12:38:35  profilanswer
 

et tu realize mal ton player. Pq tu fais comme cA?

n°200481
kakou
bin voila
Posté le 23-08-2002 à 12:45:35  profilanswer
 

bé pour l'instant c'est des test de la jmf car j'ai découvert ca hier, mais si tu as des subjestion elle sont bien venu

n°200486
darklord
You're welcome
Posté le 23-08-2002 à 12:53:16  profilanswer
 

bin il y a une méthode bloquante pour réalizer ton player. Tu n'as donc pas besoin d'attendre que l'état soit correct avec une boucle faite à la main.
 
Ah bin en fait tu le fais
 
p.realize() est bloquant normallement ... donc pas besoin de ton while(p.getState() ...)
 
enfin pour tout ce qui est audio c'est comme ca. Tu as quoi comme webcam? (elle est détectée dans JMStudio?)

n°200487
darklord
You're welcome
Posté le 23-08-2002 à 12:53:49  profilanswer
 

kakou a écrit a écrit :

bé pour l'instant c'est des test de la jmf car j'ai découvert ca hier, mais si tu as des subjestion elle sont bien venu




 
bin regarde ce que fais ta thread, ca n'a RIEN à voir avec JMF c'est une erreur basique (faut faire dormir ta thread sinon ca bouffe tout ton CPU et c'est normal)

n°200489
kakou
bin voila
Posté le 23-08-2002 à 12:56:25  profilanswer
 

oui mais le thread il etait bloquer par la deuxieme bloucle que j'avais elle oublié de bloquer
 
Si je let po de deuxieme boucle pour attendre que ce soit réalisé, ca ne marche po , il ne bloque po sur le realize il pase directement  a la suite

n°200491
kakou
bin voila
Posté le 23-08-2002 à 12:59:00  profilanswer
 

pour ce qui est de la cam je la détecte mois meme avec une autre classe qui renvoi une instant de  
CaptureDeviceInfo
 
je l'ai faite a l'aide de la classe VFWManual.java

mood
Publicité
Posté le 23-08-2002 à 12:59:00  profilanswer
 

n°200500
darklord
You're welcome
Posté le 23-08-2002 à 13:11:33  profilanswer
 

tu dois déclarer ta cam dans JMStudio (si tu es sous windows)

n°200503
kakou
bin voila
Posté le 23-08-2002 à 13:16:36  profilanswer
 

bé non je la recherche parmis les device présent
VFWManual: Committed ok
CaptureDeviceInfo = vfw:Microsoft WDM Image Capture (Win32):0 vfw://0
 

n°200507
darklord
You're welcome
Posté le 23-08-2002 à 13:19:26  profilanswer
 

bon elle est déclarée dans JMStudio oui ou non? Est ce qu'elle est présente dans liste des capture devices ?
 
c'est tout ce que je demande.
 
Ceci dit et je me répète ton problème n'a strictement rien à voir avec JMF.
 
M'enfin si tu me crois pas c'est ton problème hein ...

n°200513
kakou
bin voila
Posté le 23-08-2002 à 13:23:21  profilanswer
 

a si je te crois c'est bon c'est régler.
fallait juste mettre un sleep
 
oui elle est présenyte ma cam j'arrive a capturer des image et a les afficher
 
merci

n°200517
darklord
You're welcome
Posté le 23-08-2002 à 13:29:05  profilanswer
 

kakou a écrit a écrit :

a si je te crois c'est bon c'est régler.
fallait juste mettre un sleep
 
oui elle est présenyte ma cam j'arrive a capturer des image et a les afficher
 
merci




 
 :sarcastic: il aura qd meme fallu que je répète trois fois la meme chose. C'est quand meme dingue ...
 
enfin  :na:

n°200519
kakou
bin voila
Posté le 23-08-2002 à 13:29:59  profilanswer
 

bé je l'avais corriger dés que tu la dis la première fois
aurais-je homis de te le dire  :D

n°200520
darklord
You're welcome
Posté le 23-08-2002 à 13:30:10  profilanswer
 

kakou a écrit a écrit :

bé je l'avais corriger dés que tu la dis la première fois
aurais-je homis de te le dire  :D  




 
 :cry:

n°200532
kakou
bin voila
Posté le 23-08-2002 à 13:37:51  profilanswer
 

Désolé je le ferais plus, je suis en train de manger en meme temps donc c'est dure :)

n°200534
kakou
bin voila
Posté le 23-08-2002 à 13:38:59  profilanswer
 

derniere question en passant, ca bouffe 50mo de ram sur mes 5120mo c'est dans la moyenne?

n°200539
darklord
You're welcome
Posté le 23-08-2002 à 13:47:00  profilanswer
 

kakou a écrit a écrit :

derniere question en passant, ca bouffe 50mo de ram sur mes 5120mo c'est dans la moyenne?




 
 
tu as 5Go de ram ? :D

n°200563
kakou
bin voila
Posté le 23-08-2002 à 14:16:37  profilanswer
 

non 512mo
 
et ca me parrer beaucoup qu'il bouffe autant
 
d'ailleurs netbean m'en bouffe 130

n°200569
darklord
You're welcome
Posté le 23-08-2002 à 14:21:48  profilanswer
 

non c normal. Tu as une mémoire confortable et donc l'OS en alloue plus que si tu n'en avait que 128 ou 256 ..

n°200572
kakou
bin voila
Posté le 23-08-2002 à 14:23:46  profilanswer
 

c'est bien ce que je penser mais je préférer m'en assurer

n°200573
benou
Posté le 23-08-2002 à 14:26:41  profilanswer
 

Java est sponsorisé par les fabriquants de RAM ! ;)

n°200576
kakou
bin voila
Posté le 23-08-2002 à 14:29:33  profilanswer
 

c'est clair quand on voit les propriété du systeme quand on execute un prog,
aprés du coup y'en a plein qui dise java c'est nul: c'est lent et ca bouffe toutes la ram

n°200577
benou
Posté le 23-08-2002 à 14:31:23  profilanswer
 

ben ils ont pas tord quand ils disent c'est lent et ca bouffe toute la RAM...

n°200578
kakou
bin voila
Posté le 23-08-2002 à 14:33:00  profilanswer
 

je sais mais quand tu regarde les niveau de ram quand tu lance un prog y'as de quoi avoir peur
 
Enfin moi je répéte ce que me disent tous mes potes qui sont contre le java

n°200581
darklord
You're welcome
Posté le 23-08-2002 à 14:37:00  profilanswer
 

benou a écrit a écrit :

ben ils ont pas tord quand ils disent c'est lent et ca bouffe toute la RAM...




 
ca dépend ...

n°200584
kakou
bin voila
Posté le 23-08-2002 à 14:41:22  profilanswer
 

c'est vrai que toutes a l'heure moi cétait le cas mais c'etait de ma faute  :D  :D

n°200587
--greg--
Posté le 23-08-2002 à 14:42:06  profilanswer
 

DarkLord a écrit a écrit :

 
 
ca dépend ...



oui des fois c'est TRES lent et ça bouffe VRAIMENT toute la ram
[:phenos]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°200589
darklord
You're welcome
Posté le 23-08-2002 à 14:43:31  profilanswer
 

--greg-- a écrit a écrit :

oui des fois c'est TRES lent et ça bouffe VRAIMENT toute la ram
[:phenos]




 
arrête de troller et travaille :fou:
 
 [:darklord]

n°200591
darklord
You're welcome
Posté le 23-08-2002 à 14:43:43  profilanswer
 

--greg-- a écrit a écrit :

oui des fois c'est TRES lent et ça bouffe VRAIMENT toute la ram
[:phenos]




 
qd c'est toi qui programme tu veux dire :D

n°200595
kakou
bin voila
Posté le 23-08-2002 à 14:47:38  profilanswer
 

DarkLord a écrit a écrit :

 
 
qd c'est toi qui programme tu veux dire :D




 
lol

n°200611
bobuse
Posté le 23-08-2002 à 14:58:52  profilanswer
 

--greg-- a écrit a écrit :

oui des fois c'est TRES lent et ça bouffe VRAIMENT toute la ram
[:phenos]




 
[troll]
((CPU >= 1.5 GHz) && (MEM >= 256 Mo)) == RULEZZZ
[/troll]

n°200835
kakou
bin voila
Posté le 23-08-2002 à 17:26:59  profilanswer
 

c'est ce que j'ai et c'est vrai que ca roule par contre au boulot y'as que 128mo de ram et ca rame  :heink:

n°200931
R3g
fonctionnaire certifié ITIL
Posté le 23-08-2002 à 19:36:52  profilanswer
 

skler, je bosse toute la journee sous jEdit avec un PIII 500 et 96 de RAM, et ben je suis obligé de le fermer toutes les 2/3 heures sinon ca avance plus

mood
Publicité
Posté le   profilanswer
 


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

  Boucle qui bouffe ma ram

 

Sujets relatifs
[HTML] <blink> dans <marquee> mais texte défile toujours en boucle !!!Access 2000 boucle lorsqu'un bouton est enfoncé
problème de boucle avec update.........(résolu)[C++] include en boucle
erreur dans une boucleBoucle en HTML
[PHP] Comment sortir d'une boucle avant sa fin[PHP] Encore cette boucle ... RHAAAAAAAAAAAAAA
[HTML] ouvrir une page en plein écran et boucle infinie (?)[PHP] Boucle qui marche po... j'y comprends rien
Plus de sujets relatifs à : Boucle qui bouffe ma ram


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR