Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous,
Je travail actuellement sur un projet qui fait appel à des Webservices. Notamment un webservice en particulier qui fait des millions de choses et qui plombe les perfs de manières monstrueuse...
Donc je suis dans une architecture objet très profonde... Il faudrait donc que je sois capable de faire la liste des méthodes finales qui feraient appel via d'autre méthodes au webservice en question, et ainsi repérer les méthodes qui appel plus d'une fois le webservice par encapsulation.
Ex :
public function justKiddingNonoYouCanStay()
{
WebserviceManager::getInstance()->callWebserviceQuiFaitMalAuPerf();
}
}
class pasBeau
{
public function havePityForUglyPeople()
{
$oResult = WebserviceManager::getInstance()->callWebserviceQuiFaitMalAuPerf();
$oToto = new toto();
$oToto->justKiddingNonoYouCanStay();
$oToto->putNonoAway();
}
}
Donc là typiquement lorsque la classe pasBeau utilise la méthode havePityForUglyPeople() le webservice est appelé 3 fois, ce qui provoque une grosse baisse de perfs...
Donc si quelqu'un connaissais un moyen pour que je puisse faire la chasse à ce genre de choses efficacement, il serait le bienvenu ^^
Merci d'avance
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Saluton,
Si l'on est en PHP5, typiquement, WebserviceManager::getInstance()->callWebserviceQuiFaitMalAuPerf() devrait être intégré dans une interface, non ?
Du coup il te suffirait de recenser quelles classes implémentent cette interface.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Euhhhh
J'aimerai bien mais non...
Je suis même en train de me rendre compte qu'il y a des fonction qui ont été redéfinie un peu partout dans le projet :\
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Hello,
Alors j'ai trouvé une fonction assez douce qui s'appelle : debug_print_backtrace() debug_print_backtrace()
Qui me donne la backtrace à l'endroit où je la place, donc comme ca j'ai vraiment la méthode finale qui appelle mon webservice.
Il faut juste que je trouve un moyen d'utiliser efficacement les résultats.
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Bon,
Maintenant je me suis fait une petite fonctionnalité pour m'envoyer le backtrace par mail.
Il faudrait que je trouve un webcrawler ou un web spider pour parcourir le site.
Est ce que quelqu'un en connaitrai un gratuit et surtout simple d'utilisation (si je pouvais éviter les boucles infinies qui ferait tomber le serveur mail de ma boite ca serait mieux ^^)
J'en trouve plein mais je voudrais éviter de polluer ma machine avec des spywares et surtout j'aimerai bien avoir un retour d'expérience de quelqu'un.
Merci d'avance
Dernière modification par Maskime (18-05-2009 10:58:43)
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Bon à toutes fins utiles, je poste ma solution :
Dans la méthode WebserviceManager::callWebserviceQuiFaitMalAuPerf(), j'ai rajouté un appel à debug_print_backtrace() de la façon suivante :
De cette façon si dans un appel il y a plus d'un appel à la methode 'callWebserviceQuiFaitMalAuPerf' un mail avec le backtrace m'est envoyé.
Ensuite j'ai fais tourné un aspirateur de site (HTTPTracks) pour passer sur toutes les pages visible du site et ainsi trouver les endroits dans lesquels je pouvais faire de l'optimisation.
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Pages :: 1