2

Je suis curieux de savoir quelles parties de ma construction basée sur rake (fonctionnant dans TeamCity) est lente. Est-il un moyen de style MVC-filtre je peux envelopper râteau-tâches afin que chacun exécute dans une minuterie, et la sortie I une ventilation desComment est-ce que j'accrocherais dans des tâches de rake le temps combien chacun prend, pour essayer d'éliminer des morceaux lents du manuscrit de construction?

  • temps passé sur la tâche, y compris les conditions préalables (je suppose que le temps entre Invoke le démarrage et l'exécution finale)
  • passé beaucoup de temps sur la tâche à l'exception des conditions préalables (je suppose que le temps entre l'exécution départ et d'arrivée)

pour que je puisse analyser quelles parties de ma construction prennent le plus de temps, pour cibler mes efforts d'optimisation?

Est-ce que TeamCity a des caractéristiques cuites qui le feraient pour moi? (Je sais que je serai capable de tracer les résultats de mon enregistrement des performances avec des graphiques personnalisés, je me demandais simplement si cela pouvait déjà être fait.)

Répondre

0

D'abord, dans TeamCity 6.0 il y a un arbre vue du journal de construction. Dans cette vue arborescente, vous pouvez voir la durée des différents blocs de votre build. De plus, dans le rake runner de TeamCity, il y a l'option "Track invoke/execute stages", qui peut être activée pour obtenir plus d'informations dans votre journal de construction (et il y a des informations de timing pour chaque enregistrement).

Vous pouvez également essayer d'ajouter des paramètres de rake tels que -t ou -v dans les paramètres de rake TeamCity pour obtenir une sortie plus détaillée.

TeamCity vous permet également d'utiliser custom service messages pour fournir plus d'informations à votre journal et à votre build.

Hope this helps, KIR

+0

je dois le faire localement, aussi, de sorte que des informations de synchronisation est poussé dans un fichier journal (CSV, de préférence). J'utilise ceci pour profiler les performances de construction sur les stations de travail des développeurs afin de rassembler les cas pour les mises à jour. –