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 :

Connaitre les appels des méthodes


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 100
    Par défaut Connaitre les appels des méthodes
    Bonjour , je souhaiterai réaliser quelque chose mais aucune idée si c'est possible ...

    disons que j'appel plusieurs fois dans mon code une méthode que je vais nommé "MethodX".

    j'aimerai après que mon logiciel sois lancé , savoir combien de fois cette méthode à étais appelé dans tout mon code et éventuellement connaitre les paramètres envoyés.

    genre un tableau:

    MethodX(800)
    MethodX(2emeparametre) ...

    est-ce que cela est possible?

    Merci

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par digofwall Voir le message
    est-ce que cela est possible?
    Eh bien oui, j'avais déjà entendu parlé de cette fonctionnalité mais dans une implémentation d'OSGi mais je n'en sais pas plus.

    Sinon je te propose quelque chose de plus simple : un système de logger Java (log4J ou simple appel à un logger fait maison) qui te permettrait d'enregistrer le passage dans une méthode au sein d'un conteneur (fichier, console ou tableau). Un appel tout bête donc à chaque début de fonction.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    En utilisant une propriété static.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private static List a = new ArrayList();
    public void method(String param){
    a.add(param);
    ....
    }
    public int getNombreDAppelDeMethod(){
      return a.size();
    }
    public List getParamsDeMethod(){
      return a;
    }
    A+.

  4. #4
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    Ya pas un profiler qui ferait ça ?

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Tu peux aussi utiliser ASPECTJ.

  6. #6
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Sinon je te propose quelque chose de plus simple : un système de logger Java (log4J ou simple appel à un logger fait maison) qui te permettrait d'enregistrer le passage dans une méthode au sein d'un conteneur (fichier, console ou tableau). Un appel tout bête donc à chaque début de fonction.
    +1, log4j est très bien pour ce que tu veux faire, ultra léger, ultra simple et tu mets ce que tu veux dans les logs. (par exemple la valeur d'une variable static qui compte le nombre d'appels)

    edit : à moins que tu ne puisses pas modifier les sources.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut
    Hmm utiliser un "logger" pour compter le nombre d'appels d'une méthode dans un programme java ou encore pire utiliser du code en dur pour ça me semble pas vraiment approprié.

    Il suffit d'utiliser pour cela un profiler , il y en a un de disponible dans Netbeans , je suppose qu'Eclipse doit aussi avoir le sien.

    Tu lance ton programme en mode "profile" ce qui va te donner le nombre d'appels des méthodes, le temps en ms, le pourcentage sur l'ensemble du programme, la mémoire utilisé etc ...

    Bref cela permet d'optimiser ton programme grâce aux statistiques fournis.

  8. #8
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par Elendhil Voir le message
    Hmm utiliser un "logger" pour compter le nombre d'appels d'une méthode dans un programme java ou encore pire utiliser du code en dur pour ça me semble pas vraiment approprié.
    Elendhil ta réponse se tient oui. Le profiler est une autre piste mais ceci dépend du besoin.

    Si le but est d'optimiser le programme grâce à ces informations, il faut mieux utiliser le profiler. Si le but est de plutôt mettre en place un système de trace précis qui permet de facilement cerner l'erreur lorsqu'elle apparait (en prod.), il faut plutôt utiliser plutôt un système de logger.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  9. #9
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    Je dirais plutot que c'est complémentaire.

    Les traces pour plus facilement comprendre ce que fait le programme, à fortiori s'il est en production (chez un client), le profiler pour les dev pour le développement.

Discussions similaires

  1. connaitres les noms des disques locaux
    Par amirym dans le forum Général Java
    Réponses: 1
    Dernier message: 25/06/2007, 04h48
  2. appel des méthodes init,start?
    Par schwarzy2 dans le forum JBuilder
    Réponses: 7
    Dernier message: 13/06/2007, 08h59
  3. connaitre les adresses des ports d'E/S
    Par duplo dans le forum Windows XP
    Réponses: 3
    Dernier message: 13/08/2006, 10h23
  4. tracer les appels des applications
    Par wwave dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 06/07/2006, 11h20
  5. [Smarty] Automatiser les appels des fichiers externes (CSS/JS etc)
    Par speedev dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 15/06/2006, 13h43

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