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 :

Lenteur Java sur UNE machine


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut Lenteur Java sur UNE machine
    Bonjour tout le monde.

    Je ne sais pas trop si je poste dans le forum le plus approprié, ou si je devrais m'orienter vers celui de "Windows - Système et logiciels", et je m'en excuse.

    Mon problème est tout bête. J'ai développé un logiciel en Java avec le JDK 1.4.2 (différentes sous-version, notament _6 et _10). Ce dernier marche "à merveille" sur ma machine, ainsi que sur une paire d'autres machines équipées avec des JRE 1.4.2 ou 1.5.0 (de la sous-version initiale à la _05). Et là aussi, il marche.

    Par contre, sur UNE des machines de notre parc, équipée en JRE 1.5.0_05, rien à faire, il rame à n'en plus finir ! Dès que je clique sur un onglet, je suis obligé d'attendre d'interminable secondes avant de voir enfin un résultat à l'écran. De même pour un clique dans une arborescence.

    Auriez-vous une idée de ce qui peut générer cette lenteur excessive ?

    Config de la machine : Portable Dell équipé d'un P4 3.2GHz avec 2Go de RAM DDR2, 1 HDD 120Go. Logiciels installés (outre la suite bureautique...) Oracle 9i, Apache et Tomcat, IIS. Mais même en arrêtant tous les processus avec le task manager, ça rame autant !

    PS : Par ailleurs, cette machine marche très bien, et ne souffre d'aucun ralentissement notoire...

  2. #2
    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,


    Si ton application utilise le réseau d'une manère ou d'une autre (ouverture de socket, connection JDBC, etc.), il y a de forte chance que cela provienne du bug du ProxySelector. On en a déja parlé sur le forum ([Socket] lent...).

    Si ton problème vient de là, tu as plusieurs solutions :
    • Désactiver le réseau NetBIOS sur le PC incriminé (puisque le problème vient de là).
    • Mettre à jour avec la dernière version de Java (1.5.0_06 à ce jour).
    • Appeller la méthode ProxySelector.setDefault(null) (ce qui necessite de compiler avec un JDK 1.5 avec les options -source 1.4 -target 1.4 (ou moins) pour rester compatible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            try {
                float jVersion = Float.parseFloat(System.getProperty("java.specification.version"));
                if (jVersion>=1.5f) {
                    ProxySelector.setDefault(null);
                }
            } catch (NumberFormatException e) {
                // ignored
            }
    • Appeller la méthode ProxySelector.setDefault(null) via l'API de reflection (afin de pouvoir compiler avec n'importe quel JDK) :
    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
            try {
                // Recherche de la classe ProxySelector :
                Class clazz = Class.forName("java.net.ProxySelector");
     
                // Recherche de la méthode setDefault() :
                Method m = clazz.getMethod("setDefault", new Class[]{clazz} );
     
                // Invocation de la méthode statique :
                m.invoke(null, new Object[]{null} );
     
            } catch (ClassNotFoundException e) {
                // La classe n'existe pas : on ignore l'erreur...
            } catch (NoSuchMethodException e) {
                // La méthode n'existe pas : on ignore l'erreur...
            } catch (Exception e) {
                e.printStackTrace();
            }


    Si ton problème vient d'ailleurs, il va falloir que tu essayes de cibler un peu plus son origine...

    a++

  3. #3
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut
    Mon problème vient d'ailleurs...

    Merci quand même pour ta réponse, qui à défaut d'apporter une solution est fort instructive

    Sinon, mon plus gros soucis vient du fait qu'il n'y a que sur cette machine que ça rame, et je n'arrive pas du tout à cibler un point spécifique qui pourrait être auteur du ralentissement. Même en recompilant sur la machine, en local, cela n'apporte aucune solution.

    Peut-être y a-t'il quelqu'un qui a déjà été confronté à ce genre de problème... atypique !

  4. #4
    Expert confirmé


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Par défaut
    Il y avait des problèmes avec certains Driver de cartes graphiques.
    Jete un oeil de ce coté là.

    Aussi s'assurez que tout est installé en local et non sur un lecteur réseau.

    Vincent

  5. #5
    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
    Tu as essayé de logger un maximum d'info pour voir les méthodes qui prennent le plus de temps ?

    a++

  6. #6
    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
    je vois Oracle 9i : tu as fait gaffe a la JVM utilisée par ton logiciel. parce que Oracle installe un JVM 1.3 flambant vieille, et la colle en premier dans le classpath.

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

Discussions similaires

  1. Lancement de java sur une machine virtuelle
    Par alexdmi024 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 20/03/2012, 14h33
  2. Déploiement d'une application java sur une autre machine
    Par enneite2 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 16/05/2011, 12h51
  3. Réponses: 3
    Dernier message: 15/09/2009, 17h56
  4. Execution d'un class Java sur une machine distante (RMI ?)
    Par hassanJava dans le forum Langage
    Réponses: 4
    Dernier message: 24/12/2008, 16h33
  5. java sur une machine dote du se solaris 10
    Par kouadio2richard dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 19/11/2008, 18h14

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