IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Perf][JVM] limite de memoire ? [FAQ]


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 56
    Par défaut [Perf][JVM] limite de memoire ?
    bonjour

    je voudrais savoir si la machine virutelle possede une taille de memoire maximale, la mienne plante avec le beau message :
    Exception in thread "main" java.lang.OutOfMemoryError
    et cela toujours aux environ de 70MO de memoire utilisé

    j'ai donc réalisé un petit progromme dont sa seule fonction est de consommé de la ram jusqu'au plantage et il plante également autour de 70MO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import java.util.*;
    class TestMem
    {
    	public static void main(String args[])
    	{
    		Vector v = new Vector();
    		while (true);
    		{
    			v.add(new int[5]);
    		}
    	}		
    }
    donc je voudrais savoir si il existe une taille limite par objet, programme, threads ou autre et un moyen de contourner cela, ds les limites physiques de la machine

    Bien sur quand mon programme plante avec 70Mo il me reste au moins 150MO de ram libre selon le gestionnaire de tache de win2000 et j'utilise le j2sdk 1.4.2_05





    [Modéré par Didier]
    Ajout de tag dans le titre
    Ajout de balises Code
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Par défaut
    Par défaut la machine virtuelle dispose de 70Mo de place mémoire. Beaucoup d'application gourmandes en place mémoire nécessitent plus.

    Tu peux demander plus de mémoire en utilisant le paramètre -Xmx lors du lancement de ton application.

    Ex: tu veux que ton application puisse prendre 100mégas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -Xmx100m package/launcher
    voila

    8)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 56
    Par défaut
    tout d'abord merci pour la rapidité de la reponse et en plus elle marche

    ensuite desolé pour l'oubli des balises j'y penserai la prochaine fois

    et maintenant question 2 :

    Quand on a l'exeception OutOfMemoryError et que la machine possède encore de la memoire libre, est il possible d'augmenter la memoire utilisé et ce pendant l'execution ?

  4. #4
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    en fait --Xms donne la memoire a allouer au demarrage de l'application et -Xmx la memoire max utilisable par l'application.

    voir http://java.sun.com/j2se/1.3/docs/to...aris/java.html

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Par défaut
    Citation Envoyé par xlurp
    Quand on a l'exeception OutOfMemoryError et que la machine possède encore de la memoire libre, est il possible d'augmenter la memoire utilisé et ce pendant l'execution ?
    Non, tu ne peux pas modifier la jvm dynamiquement si c'est ce que tu veux savoir...
    Mais tu peux prévoir une taille max de jvm de plusieurs giga si le besoin se fait ressentir... après c'est de l'optimisation de code

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 54
    Par défaut
    tu peux aussi demarrer avec java -server...
    les performances sont souvent bien meilleur

    comme en temoigne quelques bench...

    dont:

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 56
    Par défaut
    et bien merci a tout le monde d'etre si gentil avec moi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JVM]Fuite de mémoire
    Par anykeyh dans le forum Général Java
    Réponses: 6
    Dernier message: 28/09/2009, 22h43
  2. [Free Pascal] Limite de mémoire
    Par JoseF dans le forum Free Pascal
    Réponses: 6
    Dernier message: 21/02/2006, 12h43
  3. [JVM]taille maximun memoire de la JVM
    Par madmens dans le forum Général Java
    Réponses: 8
    Dernier message: 30/11/2005, 06h46
  4. [JVM]Modifier la mémoire de la JVM dynamiquement
    Par superlolo2 dans le forum Général Java
    Réponses: 6
    Dernier message: 04/10/2005, 19h08
  5. [JVM]limitation de memoire
    Par Malo dans le forum Général Java
    Réponses: 3
    Dernier message: 22/03/2005, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo