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

  FORUM HardWare.fr
  Programmation

  Mon applet est une usine a gaz [optimisation et solution inside]

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Mon applet est une usine a gaz [optimisation et solution inside]

n°192496
veryfree
Posté le 08-08-2002 à 22:32:40  profilanswer
 

tout ceux qui l on essayé Zion Antp, cherrytree et j en passe on remarqué l extreme gourmandise de mon applet
 
si certain d entre vous  pouvait me donner des conseils ce serai cool
 
 
la premiere question qui me vien:
 

  • Dans une appli classique ,j instancie mes composants et ensuite je les place ds une frame

mais ds une applet? ne doit je pas plutot placer les composant ds la methode paint()?  
enfin j aimerait savoir exactement ce que je doit mettre ds cette fichu methode car il y a des probleme de rafraichissement de l image :/
 

  • Comment vous faite pour connaitre les endroit de vos programme qui consomme le plus de cpu !?

merci de votre aide


Message édité par veryfree le 13-08-2002 à 22:59:25
mood
Publicité
Posté le 08-08-2002 à 22:32:40  profilanswer
 

n°192500
antp
Super Administrateur
Champion des excuses bidons
Posté le 08-08-2002 à 22:37:52  profilanswer
 

heu j'ai rien dit moi au niveau de sa "gourmandise" , je trouvais juste que ça lagguait à mort :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°192507
darklord
You're welcome
Posté le 08-08-2002 à 22:48:19  profilanswer
 

si mes souvenirs sont bon tu es en V90 right?
 
Intstalle ton applet sur un server qui a un bon upload et là tu pourras faire des tests réels. Il ne faut pas oublier la communication entre l'applet et la servlet.
 
En ce qui concerne l'applet elle meme, tout dépend de la puissance de la machine.
 
A mon avis le lag provient du réseau.  
 
:hello:


---------------
Just because you feel good does not make you right
n°192526
veryfree
Posté le 08-08-2002 à 22:59:54  profilanswer
 

DarkLord a écrit a écrit :

si mes souvenirs sont bon tu es en V90 right?
 
Intstalle ton applet sur un server qui a un bon upload et là tu pourras faire des tests réels. Il ne faut pas oublier la communication entre l'applet et la servlet.
 
En ce qui concerne l'applet elle meme, tout dépend de la puissance de la machine.
 
A mon avis le lag provient du réseau.  
 
:hello:




 
merci de ton aide  
mais il me faut preciser qu il n y a pas de servlet deriere
et que Zion l'a utiliser et le chat consommait 100% de son cpu ...
Note importante :Zion a un proc  de 1.4 G si mes souvenir sont bon  :sweat:

n°192529
veryfree
Posté le 08-08-2002 à 23:01:34  profilanswer
 

sinon pour ce qui est de mon V90 , a l heure actuelle jpe pas changer de serveur tout simplement parce que j en ai pas d'autre  
 
chez free on pas pas executer de programme c'est la tout le probleme
[:spamafote]


Message édité par veryfree le 08-08-2002 à 23:02:17
n°192536
zion
Plop
Posté le 08-08-2002 à 23:12:11  profilanswer
 

[:toad666]  [:toad666]  [:toad666]  
 
Quand le sale gnome java est arrivé dans ma traybar, c'est monté à 100% de CPU, et même après avoir killé ton applet, ce * voulait plus me lacher, ni moi ni mon CPU!
 
J'ai du rebooter, et franchement avec les 50 trucs ouverts au bon endroit, ca me bourre de rebooter!
 
 [:toad666]  [:toad666]  [:toad666]  
 


---------------
Informaticien.be - Lancez des défis à vos amis
n°192537
zion
Plop
Posté le 08-08-2002 à 23:12:54  profilanswer
 

Prochaine fois j'essaie ca sur une machine virtuelle  :p


---------------
Informaticien.be - Lancez des défis à vos amis
n°192539
veryfree
Posté le 08-08-2002 à 23:15:32  profilanswer
 

Zion a écrit a écrit :

 [:toad666]  [:toad666]  [:toad666]  
 
Quand le sale gnome java est arrivé dans ma traybar, c'est monté à 100% de CPU, et même après avoir killé ton applet, ce * voulait plus me lacher, ni moi ni mon CPU!
 
J'ai du rebooter, et franchement avec les 50 trucs ouverts au bon endroit, ca me bourre de rebooter!
 
 [:toad666]  [:toad666]  [:toad666]  
 
 




 
 
t es sous windows?
 
really sorry   :sweat:

n°192542
zion
Plop
Posté le 08-08-2002 à 23:20:40  profilanswer
 

veryfree a écrit a écrit :

 
 
 
t es sous windows?
 
really sorry   :sweat:  




 
Benh j'étais sous Explorer, je t'ai bien dis que Opera et Mozilla ca marchait pas...  
 
Enfin, spa grave, j'ai survécu, mais c'est chiant :/


---------------
Informaticien.be - Lancez des défis à vos amis
n°192547
schnapsman​n
Zaford Beeblefect
Posté le 08-08-2002 à 23:30:24  profilanswer
 

est ce que ca rame dans applet viewer?


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
mood
Publicité
Posté le 08-08-2002 à 23:30:24  profilanswer
 

n°192553
veryfree
Posté le 08-08-2002 à 23:51:54  profilanswer
 

SchnapsMann a écrit a écrit :

est ce que ca rame dans applet viewer?




 
jcroi pas que ce soir possible de lancer une applet de chat ds l appletviewer pour la simple raison qu elle doit etre téléchargée a partir du serveur...
 
 
jvai essayé qd meme

n°192555
schnapsman​n
Zaford Beeblefect
Posté le 08-08-2002 à 23:56:13  profilanswer
 

je ne vois pas pourquoi tu ne pourrais pas essayer ton applet en local?  :??:


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°192556
veryfree
Posté le 08-08-2002 à 23:57:28  profilanswer
 

SchnapsMann a écrit a écrit :

je ne vois pas pourquoi tu ne pourrais pas essayer ton applet en local?  :??:  




si en local mais pas avec l appletviewer, jvien d essayé a l instant et il met "probleme lors de la lecture du fichier {0}" enfin c chelou mais je pense pas que mon probleme se situe la en fait

n°192559
schnapsman​n
Zaford Beeblefect
Posté le 09-08-2002 à 00:10:38  profilanswer
 

As tu créé des widgets avec des méthodes de dessin custom ( paint(), paintComponent(), paintChildren()...) ?


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°192561
veryfree
Posté le 09-08-2002 à 00:15:29  profilanswer
 

SchnapsMann a écrit a écrit :

As tu créé des widgets avec des méthodes de dessin custom ( paint(), paintComponent(), paintChildren()...) ?




 
 

Citation :

Dans une appli classique ,j instancie mes composants et ensuite je les place ds une frame
mais ds une applet? ne doit je pas plutot placer les composant ds la methode paint()?  
enfin j aimerait savoir exactement ce que je doit mettre ds cette fichu methode car il y a des probleme de rafraichissement de l image


 
c la tout mon probleme
je sait pas quoii mettre ds paint au juste....
merci de ton aide


Message édité par veryfree le 09-08-2002 à 00:18:05
n°192569
schnapsman​n
Zaford Beeblefect
Posté le 09-08-2002 à 00:40:38  profilanswer
 

Applet ou appli, c'est pareil pour ce qui est du fonctionnement du dessin :
 
- sois tu crée ton ui en utilisant container.add(composant) en configurant un layout manager approprié : dans ce cas c'est la méthode paint par défaut qui est utlisée (elle paint le fond du contenant, puis appelle la méthode paint des composant contenus en les disposant selon les directives du layout manager)
 
- sois tu redéfinis paint(), et à ce moment là tu dessines dans le composant selon ton bon vouloir
 
Il faudrait que je vois ton appli tourner, ou que tu balances le source; en effet ce n'est pas dis que ce soit le dessin qui rame.
 
 [:zebra33]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°192586
veryfree
Posté le 09-08-2002 à 01:04:23  profilanswer
 

SchnapsMann a écrit a écrit :

Applet ou appli, c'est pareil pour ce qui est du fonctionnement du dessin :
 
- sois tu crée ton ui en utilisant container.add(composant) en configurant un layout manager approprié : dans ce cas c'est la méthode paint par défaut qui est utlisée (elle paint le fond du contenant, puis appelle la méthode paint des composant contenus en les disposant selon les directives du layout manager)
 
- sois tu redéfinis paint(), et à ce moment là tu dessines dans le composant selon ton bon vouloir
 
Il faudrait que je vois ton appli tourner, ou que tu balances le source; en effet ce n'est pas dis que ce soit le dessin qui rame.
 
 [:zebra33]  




 
si t es la fait signe et je lance le serveur...

n°192672
gfive
Posté le 09-08-2002 à 08:46:52  profilanswer
 

100% CPU, c'est bizarre, quand même...Je parierai plutôt sur une boucle infinie, ou une Thread qui a pas de yield() ou de timeout dans son run....enfin, je sais pas ce que vous en pensez, mais bon..
 
Donc, à mon avis, cherche dans les classes de communucation réseau (genre, si la lecture sur la socket est pas bloquante, du style BufferedReader.readLine()..des trucs comme ça, etc..) et dans les classes où tu as des threads....
 
Pis a la limite, fait péter le code, ça aidera, non??

n°192945
veryfree
Posté le 09-08-2002 à 14:21:38  profilanswer
 

gfive a écrit a écrit :

100% CPU, c'est bizarre, quand même...Je parierai plutôt sur une boucle infinie, ou une Thread qui a pas de yield() ou de timeout dans son run....enfin, je sais pas ce que vous en pensez, mais bon..
 
Donc, à mon avis, cherche dans les classes de communucation réseau (genre, si la lecture sur la socket est pas bloquante, du style BufferedReader.readLine()..des trucs comme ça, etc..) et dans les classes où tu as des threads....
 
Pis a la limite, fait péter le code, ça aidera, non??




 
 
Pis a la limite, fait péter le code, ça aidera, non??
 
c'est vraiment tres long alors je montre un extrait:
 

Code :
  1. public void run()
  2.  {
  3.         String phraseLu = "";   
  4.   try
  5.   {
  6.           do
  7.           {
  8.      phraseLu = in.readLine();
  9.      if(phraseLu.length()!=0)
  10.      {
  11.       if(phraseLu.startsWith("ADD" ))
  12.       mainPanel.addElement(phraseLu.substring(3));
  13.       else if(phraseLu.startsWith("REM" ))
  14.       mainPanel.removeElement(phraseLu.substring(3));
  15.       else if(phraseLu.startsWith("@@PV" ))
  16.       pvTask(phraseLu);
  17.       else if(!phraseLu.equals("" ))
  18.       setText(phraseLu);
  19.      }
  20.        }while(phraseLu!=null);
  21.   }
  22.       catch(Exception exception)
  23.       {
  24.     
  25.        setText("03Connexion interrompue\n\n" );
  26.       tabbedPane.setSelectedIndex(INDEX_OF_CHAT_TAB);
  27.     
  28.       }
  29.  }


 
il faut que je modifie ca donc?  
 
 
merci de ton aide

n°192948
gfive
Posté le 09-08-2002 à 14:26:22  profilanswer
 

Pas forcément, j'ai dit que c'était un hypothèse...
Dans ton code, in, c'est un BufferedReader?
Déjà, mettre l'analyse du message dasn cette méthode, c'est pas top : c'est pas évolutif du tout!!  
 
Enfin, c pas grave...essaie d'ajouter un Thread.yield() à la fin de ta boucle :
 
Le code de la méthode équivalent de mon client Chat :
 
 

Code :
  1. public void run() {
  2.         String line;
  3.         while (network != null) {
  4.             try {
  5.                 if ((line = reader.readLine()) != null) {
  6.                     fireEvent(line);
  7.                 } else {
  8.                     fireEvent(NetworkEvent.SERVERDIED);
  9.                 }
  10.             } catch (IOException ioe) {
  11.                 fireEvent(NetworkEvent.SERVERDIED);
  12.             }
  13.             network.yield();
  14.         }
  15.     }


 
(network, c'est la thread...koi, c'est nu nom à la con?? :D


Message édité par gfive le 09-08-2002 à 14:26:54
n°192978
veryfree
Posté le 09-08-2002 à 14:48:05  profilanswer
 

il s agis bien d'un bufferedReader:
 

out = new PrintStream(socket.getOutputStream());
 in = new BufferedReader( new InputStreamReader(socket.getInputStream()));


 
 
et pour le yield; ca va endormir le thread c bien ca?
 
combien de temps?
 
bon j essaye des que je peux
la jdoit allé faire des courses
merci encore  :jap:


Message édité par veryfree le 09-08-2002 à 14:48:36
n°192998
lorill
Posté le 09-08-2002 à 15:14:22  profilanswer
 

veryfree a écrit a écrit :

 
et pour le yield; ca va endormir le thread c bien ca?
combien de temps?




 
Ca dit juste : je passe mon tour.
En gros il laisse les autres threads s'executer et reprends la main quand c'est a nouveau son tour.

n°193014
benou
Posté le 09-08-2002 à 15:41:55  profilanswer
 

lorill a écrit a écrit :

 
 
Ca dit juste : je passe mon tour.
En gros il laisse les autres threads s'executer et reprends la main quand c'est a nouveau son tour.  




ouais. Ca ne l'endormit pas, ca dit juste "si y a d'autres threads (ou process) qui ont quelque chose à faire, allez-y ! pour le moment pour moi y a pas d'urgence"

n°193123
veryfree
Posté le 09-08-2002 à 17:45:55  profilanswer
 

cool merci pour l eclaircissement  :jap:

n°193124
veryfree
Posté le 09-08-2002 à 17:50:26  profilanswer
 

si y en a qui veulent venir essayer et me dire si c toujours aussi gourmand:
 
http://veryfree.dns2go.com
 
si ca vous soule de vous creer un  compte bien que cela prennet 1 min essayé  
user : test
pass: test
 
voila  

n°193133
gfive
Posté le 09-08-2002 à 18:06:32  profilanswer
 

bah, sous Mozilla, ça marche pas! :D
J'ai créé un compte, et il me loggue pas!

n°193134
veryfree
Posté le 09-08-2002 à 18:09:17  profilanswer
 

gfive a écrit a écrit :

bah, sous Mozilla, ça marche pas! :D
J'ai créé un compte, et il me loggue pas!




 
ok ok
 
de toute facon y a un probleme de compatibilité avec le plug in
t a pas ie qui traine?
 
moi je télécharge mozilla pour resoudre le probleme
 :jap:
 
edit 10 Mo ca risque d etre long  :sweat:


Message édité par veryfree le 09-08-2002 à 18:11:24
n°193136
gfive
Posté le 09-08-2002 à 18:13:42  profilanswer
 

bah, je suis au boulot, là, donc, sous Linux, mais le plugin, je l'ai : mon applet à moi, faut bien que je la teste, aussi! :D
Mais tiens, une bête question : y'a un serveur, à l'autre bout?? ou l'applet fait des requêtes HTTP??

n°193138
veryfree
Posté le 09-08-2002 à 18:19:34  profilanswer
 

gfive a écrit a écrit :

bah, je suis au boulot, là, donc, sous Linux, mais le plugin, je l'ai : mon applet à moi, faut bien que je la teste, aussi! :D
Mais tiens, une bête question : y'a un serveur, à l'autre bout?? ou l'applet fait des requêtes HTTP??




oui oui il y a un serveur ecrit par mes soins qui doit vraiment pas etre optimiser, il tourne sur ma machine mais j ai jamais eu plus de 15 requetes simultané alors je sait pas ce qu il vaux...
sinon le tout est hebergé sur ma machine windows + easyphp :/ + rtc  
voila
 
ps:je crois que j ai réglé  le probleme d authentification  
j ai pas essayé ca doxwnload encore la  :D

n°193141
gfive
Posté le 09-08-2002 à 18:25:38  profilanswer
 

ouais, je suis authentifié...Mais y'a pas d'applet.. :D

n°193142
veryfree
Posté le 09-08-2002 à 18:27:56  profilanswer
 

gfive a écrit a écrit :

ouais, je suis authentifié...Mais y'a pas d'applet.. :D




t a cliqué sur le bouton chat?
et rien n apparait?


Message édité par veryfree le 09-08-2002 à 18:28:18
n°193144
gfive
Posté le 09-08-2002 à 18:35:25  profilanswer
 

bah, en fait, les deux premiers items de menu n'apparaissent pas.. :D
Browser-Compatibility powaaaa!! :D

n°193145
veryfree
Posté le 09-08-2002 à 18:40:19  profilanswer
 

gfive a écrit a écrit :

bah, en fait, les deux premiers items de menu n'apparaissent pas.. :D
Browser-Compatibility powaaaa!! :D




a oui c problematique lol
 
j avait suivi les conseils de kasayax en fait ca  avait l air super son truc de feuille de style c etait troop bo pour etre vrais  :(  
 
merci de ton aide
les test c pas pour tout de suite alors....  :cry:


Message édité par veryfree le 09-08-2002 à 18:41:05
n°193198
veryfree
Posté le 09-08-2002 à 21:48:02  profilanswer
 

veryfree a écrit a écrit :

 
a oui c problematique lol
 
j avait suivi les conseils de kasayax en fait ca  avait l air super son truc de feuille de style c etait trop bo pour etre vrai  :(  
 
merci de ton aide
les test c pas pour tout de suite alors....  :cry:




bon ben tout est réparé  :D  
 
ca m a pris du temps qd meme
le site est compatible mozilla et opera  :hello:  

n°193816
veryfree
Posté le 12-08-2002 à 01:06:14  profilanswer
 

bon ben non en fait
ca comsome moins mais c tj trop
je sais pas quoi faire
 
d une maniere générale, qu est ce qui consomme beaucoups mis a part les thread?  

n°193841
darklord
You're welcome
Posté le 12-08-2002 à 09:34:12  profilanswer
 

des threads mal synchronisées :)
 
surtout si elle bosse sur des IO
 
tu as un mis un socket timeout sur la socket que tu crée au moins, pour que la lecture ne soit pas bloquante?


---------------
Just because you feel good does not make you right
n°193855
Cherrytree
cn=?
Posté le 12-08-2002 à 10:06:40  profilanswer
 

[:blueflag]


---------------
Le site de ma maman
n°194192
veryfree
Posté le 12-08-2002 à 17:14:35  profilanswer
 

DarkLord a écrit a écrit :

des threads mal synchronisées :)
 
surtout si elle bosse sur des IO
 
tu as un mis un socket timeout sur la socket que tu crée au moins, pour que la lecture ne soit pas bloquante?




ben au niveau du client, il n y a qu un seul thread donc pas de prob de syncro (dite moi si jme trompe)
sinon
la je suis pas chez moi mais j'essaye ce soir le timeout...
 
 
 
merci de ton aide  :hello:

n°194251
darklord
You're welcome
Posté le 12-08-2002 à 18:55:29  profilanswer
 

veryfree a écrit a écrit :

 
ben au niveau du client, il n y a qu un seul thread donc pas de prob de syncro (dite moi si jme trompe)
sinon
la je suis pas chez moi mais j'essaye ce soir le timeout...
 
 
 
merci de ton aide  :hello:  




 
oui synchronisée n'était pas le mot que j'aurai du utiliser. En réalité, si tu as une thread qui lit et qui attends des informations (par exemple une réponse du serveur, ou le serveur attend un commande du client). il faut pas qu'il attende comme un con pendant des heures sinon à terme ca va bouffer des ressources.
 
Solution qd tu crées ta socket tu lui associes un timeout de quelques seconds. Périodiquement tu vas voir que ton instruction read va partir en timeout et ca te permet d'un peu relacher les ressources et éviter le genre de probs que tu as. Je ne dis pas que c'est LA solution, je dis que ca peut etre une bonne piste.
 
bonne chance


Message édité par darklord le 12-08-2002 à 18:55:44

---------------
Just because you feel good does not make you right
n°194277
veryfree
Posté le 12-08-2002 à 20:28:39  profilanswer
 

DarkLord a écrit a écrit :

 
 
oui synchronisée n'était pas le mot que j'aurai du utiliser. En réalité, si tu as une thread qui lit et qui attends des informations (par exemple une réponse du serveur, ou le serveur attend un commande du client). il faut pas qu'il attende comme un con pendant des heures sinon à terme ca va bouffer des ressources.
 
Solution qd tu crées ta socket tu lui associes un timeout de quelques seconds. Périodiquement tu vas voir que ton instruction read va partir en timeout et ca te permet d'un peu relacher les ressources et éviter le genre de probs que tu as. Je ne dis pas que c'est LA solution, je dis que ca peut etre une bonne piste.
 
bonne chance




 
juste une petite question avant de faire des betises:
 

Citation :

If the timeout expires, a java.io.InterruptedIOException is raised, though the Socket is still valid.


 
si j ai bien compris, si personne ne parle sur le chat la methode qui lit le flux entrant de la socket devrai lever l exception java.io.InterruptedIOException et ca libere les ressources c bien ca? mais la methode ReadLine() associée a ce flux est toujours valables?
 
j ai mis 3000 ms pour le timeout
sinon je fait appel a cette methode qu un fois n est ce pas?
 
 socket = new Socket(host,port);  
  socket.setSoTimeout(3000);
....
public void run(){
 
try{
monFlux.readLine();
}catch(InterruptedIOException ioe){...}catch(IOException ie){...}
 
}
 
c bien comme ca?


Message édité par veryfree le 12-08-2002 à 20:34:36
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  Mon applet est une usine a gaz [optimisation et solution inside]

 

Sujets relatifs
Communiquet avec un appletOptimisation d'une requête. Laquelle choisiriez-vous ?
[JAVA] Récupérer width & height d'une image [Solution inside]signature d'un applet ie et netscape
MySql - Optimisation - Champ indexé AND Champ pas indexé[MySQL] 2-3 questions qui me turlupinent ... [Indexes inside]
problemes avec les fonctions IMAP - [ PHP inside ]savez vous faire ça?? (php+js+autre inside) [résolu]
[.NET] [MySQL] se connecter a une base mysql [INFO INSIDE] 
Plus de sujets relatifs à : Mon applet est une usine a gaz [optimisation et solution inside]


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