Problème avec la JVM !!!! AIDEZ-MOI

matthew016 Messages postés 5 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 7 août 2006 - 29 juin 2003 à 19:33
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 30 juin 2003 à 02:54
Bonjour,

depuis que j'ai installé le J2SDK1.4.0,
j'ai un problème quand je joue a un simple jeu fait en JAVA

(http://www.jippii.ch/jspfr/games/index.jsp puis clicker sur bomberman)

Après l'avoir lancé, l'utilisation de mon UC est de +/- 10% et dans la zone de notification je vois une petite icône appraitre (elle représente une tasse de caffé appelé Console Java) c'est le Sun plugin je suppose (la 1.4) ..

Après 15-20 minutes, cette utilisation est de +/- 95% et il est impossible de continuer. Dans la fenêtre processus du gestionnaire des tâches, je peux voir =>

Iexplore.exe => +/- 95.048 KO

ce qui est impensable pour une application comme internet explorer avec ce genre de jeux.
(Mon CPU => 2.4 GHZ)

Lorsque je choisit le Microsoft VM par défaut je n'ai plus aucun problème ..

J'ai également des problèmes lorsque je vais sur www.caramail.com
(ca bloque, ou il se passe des trucs bizarre :-s)

Voila si quelqu'un peut m'éclaircir un peu ce qui se passe ..
Pcq j'ai commencé un jeu en java en réseau utilisant des composants Swing (donc dans ce cas là il faut utiliser le Sun plugin si j'ai bien compris) et j'ai peur que les joueurs rencontrent les même problèmes ...

3 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
30 juin 2003 à 02:10
d'après ce que je peut penser, c'est la VM de microsoft dois avoir un rqamasse miette plus efficace que celle de sun. Le ramasse miette, c'est un demon automatique de java qui ramasse tout ce qui fonctionne pus, comme des variables plus utiliser. Donc à chaque annimation, surement, java doit créer des objet et celui de sun, doit pas les effacer après un certain temps, donc ta mémoire doit finir par être plienne. Donc c'est pour ça que c'est toujours important de fermer tes variable dasn un thread, sinon ça fini par se multiplier sans cesse. Si ma logique est bonne, ça veut tout simplement dire, que la VM de microsoft est plus lourde à charger pour éviter que de la mauvaise programmation remplisse la mémoire.

en fait, c'est exactement comme la technologie .NET . Microsoft prend le programmeur par la main et s'il programme mal ou fait des erreurs, ça gèle pas, puisque des demons tourne en arrière plans pour corriger

si le jeux a des problèmes de mémoire qui duplique les variable à l'infini, prend la VM de microsoft pour être sur, sauf celle de sun est plus rapide à cause des demon qui sont moins présent.

masi tout ceci sont des supposition, mais à voir ce que tu décris, ça a lair d'être bien ça.

en passant, si ta mémoire vive est plienne, la puissance de ton ordi ne fait plus rien, puisque ton ordi travail avec ton disque dur au lieu d'utiliser ta RAM. Peut-être en utilisant un logiciel qui vide ta ram quand elle est trop plienne pourrais réglé le problème, mais ça va revenir pareil que la VM de microsoft, puisque tu aura des demons qui vont regarder ta ram et vider ce qui peut-être vider
matthew016 Messages postés 5 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 7 août 2006
30 juin 2003 à 02:44
Hello Dragon,
Merci j'ai un peu compris ton point d'vue, j'ai toujours quelques questions si cela ne te dérange pas ...

>> Donc c'est pour ça que c'est toujours important de fermer tes variable dasn un thread, sinon ça fini par se multiplier sans cesse.

Tu veux dire que le problème pourrait être du à des defauts dans le programme ?
A cause des variables globales dans le programme ?

>> important de fermer tes variable dans un thread

Je vois pas ... t'as un exemple sous la main ? :)

>> sauf celle de sun est plus rapide à cause des demon qui sont moins présent.

tu dis que les démons ralentissent le prog ?

Qd je lis ton message tu as l'air de dire que quand j'ai un plugin de Sun j'utilise la Java Virtual Machine et non la Microsoft Virtual Machine, tu es sur de ca ?

C chiant que IE ne supporte pas le JAVA 1.2
( les composants Swing :'( )
sans le plugin de Sun, qui fait tout foiré merde !!!!

Bon aller, te laisse Thanks @+
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
30 juin 2003 à 02:54
quand tu fais un thread, exemple pour démarrer un son pour pouvoir faire jouer plusieurs son à la fois. Si à al fin du son, le son reste en mémoire, tu fini par avoir des centaine de fois le même son en mémoire. Bien qu'un sont pèse 10ko, masi 10ko multiplier 200 fois par minutes multiplier par 20 minutes = ça fais presque 40 mo de mémoire ram de perdu. ça monte vite

un demon est un programme qui tourne en arrière plan et regarde ce qui se passe pour savoir s'il doit intervenir ou non, mais se programme doit démarrer toutes les demi-secondes, par exemple. Donc le cpu doit toute les demi-seconde faire un check-up de tout ce qui est en mémoire et enlver se qui sert pus. Donc plus le cpu perd de la puissance pour vérifier, c'est de la puissance qui pourrais être mis ailleurs, mais pour des petit jeu comme ce jeu là, c'est tellement infime, que ça dérange pas dutout. Mais si tu programme avec un jeux qui utilise l'API 3D de java, chaque calcul du processeur doit être calculer et vider ses variables, surtout ceux des bases de donnée, graphique et sonore est toujours une bonne chose au lieu d'utiliser un demon.Si le programme vide pas sa mémoire lui-même, c'est une erreur de programmation en quelques sorte ou plutot une mauvaise programmation

On dirait que la VM de microsoft utilise se genre de démon automatiquement ou plus souvent que celle de sun. Sinon, ça peut aussi être tout simplement que la VM de microsoft a un code source totallement différent de celle de sun, donc il pourrais avoir des avantages et des inconvienent d'utiliser un ou l'autre plugin
Rejoignez-nous