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 :

optimiser java mémoire, charge


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 111
    Points : 38
    Points
    38
    Par défaut optimiser java mémoire, charge
    Bonjour,

    Je ne veux pas faire un troll.

    J'ai comme l'impression que les programmes java comme le serveur tomcat et compagnie fonctionnent bien mais ont besoin d'une grosse configuration. Il semblerait que la courbe (x=nombre d'utilisateurs,y=puissance de la machine) soit du y=ln(x) autrement dit même pour un petit nombres de connexions il faut une machine puissante.

    La cause serait qu'un programme java qui a des capacités bonne pour ce qui est à faire (du traitement métier) consomme d'office beaucoup de mémoire à cause de sa jvm . Je ne sais pas si en plus il y a une augmentation proportionnelle à l'utilisation qui fait de la mémoire par java en fonction du programme.

    Mon problème n'est pas la vitesse d'exécution de java. Mais est-ce que je peux faire plein de petits programmes (j'aime bien divisé en petits programmes indépendants les tâches (linuxien)). Sachant que je lance une jvm pour chaque programme.

    Les traitements à effectuer par ces programmes sont assez lourd et je ne peux pas gonfler comme je veux la configuration de la machine et ni répartir sur plusieurs machines.

    Est-ce que m'a crainte est fondé ? Si oui et même si c'est pas le cas comment faire de l'optimisation au niveau de java pour gagner en consommation et en vitesse aussi ?

    Merci d'avance de vos réponses.

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 487
    Points
    15 487
    Par défaut
    Tes craintes sont en partie fondées. La JVM consomme en effet généralement plus de mémoire qu'une simple application C. Cela s'explique par le fait qu'elle doit d'abord être chargée en mémoire avant de charger le programme lui même.
    Elle a également tendance a allouer la mémoire par paquet, ce qui est un avantage pour les performance, mais un inconvénient pour une micro application car un quantité fixe de mémoire est toujours utilisée.

    Cependant, on peut régler les quantités de mémoire minimale et maximale d'un programme java via les paramètres de la jvm:
    -Xms<size> set initial Java heap size
    -Xmx<size> set maximum Java heap size
    -Xss<size> set java thread stack size

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 111
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Qu'en est-il de la charge CPU avec beaucoup d'instance de jvm sur une seule machine ?

    J'aimerai savoir si il est possible de lancer plusieurs programme dans une seul jvm et si oui qu'elles en sont les conséquences ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    tu peux avoir des trucs encore plus fancy si tu as >4go de ram avec du 64 bits:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -Djava.awt.headless=true -XX:+UseParallelGC  
    -XX:ParallelGCThreads=3 -XX:MaxNewSize=1024m 
    -XX:NewSize=1024m -XX:MinFreeHeapRatio=30 
    -XX:MaxHeapFreeRatio=75

Discussions similaires

  1. optimisation java, debutant
    Par Mobistar dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/03/2008, 15h56
  2. Optimiser la mémoire d'une app VB 2005
    Par Diabless6 dans le forum VB.NET
    Réponses: 34
    Dernier message: 21/08/2007, 19h18
  3. [HTML/PHP/AJAX/JAVASCRIPT/XML/TMX/MYSQL/JAVA] Mémoire de traduction
    Par titoff85 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 04/08/2007, 08h20
  4. Optimisation java et xml
    Par ujoodha dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 25/10/2005, 14h53
  5. Optimisation de mémoire / rapiditée
    Par Zenol dans le forum C++
    Réponses: 9
    Dernier message: 25/09/2005, 11h18

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