Bonjour,

J'essaie d'utiliser TPTP pour profiler un servlet pour Tomcat. Mais j'ai énormément du mal à interpréter les chiffres astronomiques donnés. En gros, je ne pourrais traiter qu'une requête toutes les six secondes à ce tarif là.

En fait j'aimerais avoir une estimation de l'utilisation du CPU nécessaire pour une requête (sans le temps de chargement/initialisation d'une classe, qui ne se fait qu'une fois en principe), le nombre d'accès à des secteurs du disque, et le nombre de messages réseau échangés. Pour les deux derniers, je pourrai me passer de statistiques, pour la première j'ai plus de mal à m'en passer. Et par exemple avec des langages comme PHP, et des outils comme XDebug je peux avoir des estimations très précises du temps CPU réelement utilsé, et donc savoir combien de requêtes par secondes je pourrais traiter avec un seul CPU. (Puisqu'il y a un très haut parallélisme) Sur des applications non web, des outils comme gprof sont très efficaces également.

Mais en Java, j'ai cru comprendre, que l'estimation du temps CPU était incorrecte. Et quand on me dit qu'il faut une seconde entière pour faire une connexion à une base de donnée mysql en temps CPU, j'ai du mal à le croire.

Pour donner un exemple, j'ai pour une classe 1.4 s de temps cumulé, et pour l'une des méthodes 8,0 s de temps cumulé. Le temps des méthodes n'est pas compté dans le temps de la classe ? Comment le temps d'exécution du code d'une méthode peut il être plus élevé que le temps d'exécution du code entier de sa classe ? Ensuite, je regarde ce qui prend du temps dans cette méthode, et je vois les appels à jdoProvideFields, et jdoProvideField, de 3.1 s chacun, temps CPU de 2,6 pour le premier, et de 0.4 s pour le second. Pourquoi de telles différences entre les temps cumulé et le temps cumulé CPU ? Et comment finalement obtenir des temps aussi long ? Il y a de l'attente active dans l'implémentation de JDO que j'utilise ?

Ca fait donc beaucoup de questions. Mais je crois que globallement il y a deux questions :

  • Comment interpréter les chiffres de TPTP ?
  • Comment avoir une idée de la charge que pourra supporter mon serveur en fin de compte ?