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 :

Comment faire un OutOfMemory :)


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut Comment faire un OutOfMemory :)
    Bonjour,

    Je voulais savoir si quelqu'un connaissais un moyen rapide de faire monter la mémoire java en utilisant uniquement un jdk .

    Je sais que c'est peu courant comme question

    Pour l'instant j'utilise une chaine de caractère que je concatène sans fin. Mais c'est relativement lent (je vise le Go)

    Je penses éventellement rajouter chaque nouvelle instance créer dans une liste.
    Ou à lire plusieurs gros fichier (venant du jdk bien sur).
    Si quelqu'un à une meilleure idée, je suis preneur.

    Merci par avance.

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    en ajoutant quelques boucles sur de gros tableaux de tableaux de tableaux, rempli de gros String (voir contenu de fichier)dont tu testes la valeur à chaque tour

    et ptet en faisant en plus du multi threads



  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Tiaps
    Je sais que c'est peu courant comme question
    En effet c'est vriament pas banal comme question

    Citation Envoyé par Tiaps
    Pour l'instant j'utilise une chaine de caractère que je concatène sans fin. Mais c'est relativement lent (je vise le Go)
    Si tu utilises l'opérateur + c'est normal que ce soit lents car cela implique d'utiliser un grand nombre de variable temporaire implicite...

    Le plus simple est d'allouer un tableaux de très grande capacité. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double d[] = new double[Integer.MAX_VALUE];
    Comme Integer.MAX_VALUE vaut 2147483647 et qu'un double occupe normalement 8 octets, cela revient à allouer environ 16 Go de mémoire... Ca plante immédiatement


    a++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    Je rajoute une contrainte (si c'est possible)

    le code le plus concis possible

    Merci evil pour ta réponse.
    Le test ca prend de la mémoire???
    Une map ne consomme t'elle pas plus qu'un tableau en mémoire???

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    Ma contrainte est arrivé trop tard.

    Bravo à AdiGuba pour sa réponse (et merci aussi)

    En plus c'est paramétrable pas trop difficilement

    Je testerai ca ce soir

  6. #6
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    J'avoue que j'aimerais bien savoir pourquoi tu veux faire ça... C'est pour une blague?


    Sinon, n'oublie pas le

  7. #7
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    tu peux enchainer les boucles de vecteurs de vecteurs....ça, ça marche pas mal!!!!

  8. #8
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Il y a tellement de façon de faire que ca m'étonne que tu n'y arrives pas tout seul

  9. #9
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par sozie9372
    Il y a tellement de façon de faire que ca m'étonne que tu n'y arrives pas tout seul
    C'est comme toutes les erreurs, c'est toujours plus facile à faire quand ce n'est pas fait exprès

  10. #10
    Membre confirmé Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Par défaut
    Prendre de l'allocation memoire en java? Eh bien, moi qui pensait que c'estait la specialitee du java .

  11. #11
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    non, ce n'est pas la spécialité du Java....

    C'est la spécialité du code fait avec les pieds!!!

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    Ca peux aussi être fait exprès. Mais c'est vrai qu'il soit possible que je sois la seul personne au monde à vouloir le faire.

    En fait mon objectif c'est d'utiliser le plus de mémoire possible avant de jouer à un jeu. Ma conf est pas top en RAM et j'utilise de la mémoire virtuelle (il me semble, je peux me tromper). Et j'ai l'impression que si on va taper dans cette mémoire avnt de jouer et bien ca marche mieux (En gros le jeu ne plantes pas ou moins en cours de partie). Avant je le faisais à la main (lancement de toutes les grosses applis en même temps). Je me trompes peut être mais j'y crois à mort et j'ai appris quelque chose

    Adiguba, ta méthode est nickel sauf qu'il ne faut pas faire un OutOfMemory, sinon la RAM n'est pas utilisée. J'ai l'impression que java détecte à l'avance que ca sera trop gros et n'alloue pas la mémoire. A vérifier.

    Sinon bah merci beaucoup et bonne journée.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    sozie9372 :
    Mon problème était que je n'arrivais pas à le faire rapidement ou juste en quelque ligne de code. Le code d'AdiGuba est magique de ce point de vue la. Le code prends moins de 10 lignes. c'est beau

  14. #14
    Membre confirmé Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Par défaut
    Bah sinon tu pourrais de faire dans un autre lagage le compilateur c# vient avec les m-a-j de windows (cherche un executable nomme csc.exe)

Discussions similaires

  1. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  2. comment faire evoluer ma base vers interbase6
    Par toure32 dans le forum InterBase
    Réponses: 5
    Dernier message: 23/10/2002, 10h59
  3. Réponses: 8
    Dernier message: 18/09/2002, 03h20
  4. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 14h25
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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