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

Langage Java Discussion :

Question sur la gestion mémoire


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 77
    Points
    77
    Par défaut Question sur la gestion mémoire
    Bonsoir,

    Je me pose plusieur questions sur la gestion mémoire de java...

    y a t-il une difference en terme d'occupation mémoire entre une jFrame, jPanel, jDialog ?

    ensuite plus général:

    si je fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public static String stringToHtml(String src){
            // Si non initialiser
            if(!initialise){
                // j'initialise les vecteurs
                ParserHTML();
                initialise = true;        
            }
            // je boucle sur la taille d'un des vecteurs.
            for(int i = 0; i<cle.size(); i++){
                // je remplace le caractere par son code HTML.
                rdu = src.replace(cle.get(i), valeur.get(i));
                // Le rendu devient la source.
                src = rdu;
            }
            return rdu;
        }
    les vecteurs initialisés grace a ParserHTML(); reste t-il dans initialisé dans la mémoir jusqu'à la fin de l'application ou sont-ils detruis par le garbage collector au bout d'un certains temps...

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Ça dépend, montre ta méthode parserHTML()

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 77
    Points
    77
    Par défaut
    ok, mais c'est violent... ça initialise 2 vecteurs et que je la retrouve pas poster sur un site de code open source... ^^
    car je vais la poster.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    private static void ParserHTML(){
            // initialisation des vecteurs...
            cle = new Vector<String>(); valeur = new Vector<String>();
            // On commence par le caracere "&" sinon les "&aacute" seront remplace par "&ampaacute"
            cle.add("&"); valeur.add("&amp;"); 
            cle.add("á"); valeur.add("&aacute;"); cle.add("â"); valeur.add("&acirc;");
            cle.add("æ"); valeur.add("&aelig;");  cle.add("à"); valeur.add("&agrave;");
            cle.add("å"); valeur.add("&aring;");  cle.add("ã"); valeur.add("&atilde;");
            cle.add("ä"); valeur.add("&auml;");   cle.add("ç"); valeur.add("&ccedil;");
            cle.add("é"); valeur.add("&eacute;"); cle.add("ê"); valeur.add("&ecirc;");
            cle.add("è"); valeur.add("&egrave;"); cle.add("ë"); valeur.add("&euml;");
            cle.add("ÿ"); valeur.add("&yuml;");   cle.add("\""); valeur.add("&quot;");
            cle.add("<"); valeur.add("&lt;");     cle.add(">"); valeur.add("&gt;");
            cle.add("í"); valeur.add("&iacute;"); cle.add("î"); valeur.add("&icirc;");
            cle.add("ì"); valeur.add("&igrave;"); cle.add("ï"); valeur.add("&iuml;");
            cle.add("ñ"); valeur.add("&ntilde;"); cle.add("ó"); valeur.add("&oacute;");
            cle.add("ô"); valeur.add("&ocirc;");  cle.add("ò"); valeur.add("&ograve;");
            cle.add("ø"); valeur.add("&oslash;"); cle.add("õ"); valeur.add("&otilde;");
            cle.add("ö"); valeur.add("&ouml;");   cle.add("ß"); valeur.add("&szlig;");
            cle.add("þ"); valeur.add("&thorn;");  cle.add("ú"); valeur.add("&uacute;");
            cle.add("û"); valeur.add("&ucirc;");  cle.add("ù"); valeur.add("&ugrave;");
            cle.add("ü"); valeur.add("&uuml;");   cle.add("ý"); valeur.add("&yacute;");
            cle.add("€"); valeur.add("&euro;");   cle.add("¥"); valeur.add("&yen;"); 
            cle.add("œ"); valeur.add("&oelig;");  cle.add("¢"); valeur.add("&cent;");
            cle.add("©"); valeur.add("&reg;");    cle.add("°"); valeur.add("&deg;");
            cle.add("²"); valeur.add("&sup2;");   cle.add("³"); valeur.add("&sup3;");
            cle.add("÷"); valeur.add("&divide;"); cle.add("\n"); valeur.add("<br />");
        }

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par rem02
    ou sont-ils detruis par le garbage collector au bout d'un certains temps...
    Ca, c'est l'histoire du canon de Fernand Raynaud!

    Bien évidemment qu'ils sont détruit au bout d'un certain temps... au pire quand tu quittes l'application!

    Sinon le garbage collector se chargera de libérer la place mémoire dès que l'objet ne sera plus utilisé (pour quelques infos supplémentaires, Romain Guy a publié un article sur le GC: http://gfx.developpez.com/tutoriel/java/gc/)

  5. #5
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Mwarf, si cle et valeur sont des attributs, vu que ces Vector sont référencés, ils ne seront pas supprimés par le gc (encore heureux).

    Sinon, c'est pas une bonne idée d'utiliser Vector car c'est synchronisé A CHAQUE .add(). ça prend énormément de ressources pour la synchronisation par rapport à l'ajout proprement dit.
    En plus, il vaut mieux utiliser une Map pour faire des associations clé/valeur... (Map<String,String>, par exemple HashMap<String,String>).

  6. #6
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 77
    Points
    77
    Par défaut
    J'y avais pensé pour le HashMap... mais quand j'ai regardé la javaDoc...
    Je me suis aperçu que l'on pouvait pas travailler avec les index... donc je ne peux faire la boucle...
    a moin que je n'ai pas compris... ou pas vu une subtilitée...

    Sinon pour:
    y a t-il une difference en terme d'occupation mémoire entre une jFrame, jPanel, jDialog ?

  7. #7
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par rem02
    J'y avais pensé pour le HashMap... mais quand j'ai regardé la javaDoc...
    Je me suis aperçu que l'on pouvait pas travailler avec les index... donc je ne peux faire la boucle...
    a moin que je n'ai pas compris... ou pas vu une subtilitée...
    Tu veux les parcourir?
    Si oui:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(Map.Entry<String,String> entry : map.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();
        ...
    }
    Si tu veux quand même utiliser une "liste", utilise ArrayList et non Vector, et utilise UNE seule liste contenant un objet qui est composé de 2 String... (et pas 2 listes "indépendantes" comme tu fais là). C'est plus "objet".

  8. #8
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 77
    Points
    77
    Par défaut
    je connaissais pas cette façon de faire

    Merci, je vais tester...

    Je viens de tester... génial, je connaisssais pas cette façon de faire... merci encore.

    Petite erreur dans ton code, il manquait les parenthéses a map.entrySet(). J'ai corrigé.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for(Map.Entry<String,String> entry : map.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();
        ...
    }

Discussions similaires

  1. [SuSE] questions sur la gestion mémoire
    Par jhfra dans le forum Linux
    Réponses: 2
    Dernier message: 02/12/2013, 11h39
  2. Questions sur la gestion de la mémoire
    Par Graimbault dans le forum Administration système
    Réponses: 0
    Dernier message: 20/04/2012, 15h48
  3. Question sur la gestion de la mémoire
    Par angelocoupet dans le forum Linux
    Réponses: 2
    Dernier message: 03/01/2011, 18h43
  4. Réponses: 4
    Dernier message: 28/10/2010, 10h21
  5. questions sur la gestion de la mémoire
    Par Anouschka dans le forum Débuter
    Réponses: 9
    Dernier message: 26/08/2007, 20h44

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