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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    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
    Par défaut
    Ça dépend, montre ta méthode parserHTML()

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    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
    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
    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>).

  5. #5
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    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 ?

  6. #6
    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
    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".

  7. #7
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    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 817
    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/)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

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