2010-10-31 7 views
9

Ceci est de recueillir de l'expérience que la communauté a fait des informations sur l'aspect de l'application web de profilage.Comment profilez-vous votre site web/application web?

Il y a quelques années, j'ai travaillé sur un très gros projet en C++/Java avec CORBA ORB et nous utilisions Rational Purify/CodeCoverage pour instrumenter, détecter les fuites de mémoire et découvrir les goulots d'étranglement sur le code serveur. A partir de ce moment, je n'avais aucune expérience sur l'utilisation d'outils comme ça sur la plate-forme .NET fonctionnant sur C# pur ou avec une application web

  • Utilisez-vous des outils?
  • Est-ce que vous estimez le trafic et faites des calculs sur la bande passante attendue?
  • Diffusez-vous différemment le code du serveur et le rendu de la page Web?
  • Quel outil de couverture de code utilisez-vous?

Je sais que c'est un très gros sujet. Certaines informations que j'ai proviennent du livre "Performance Analysis for Java WebSites", qui est pour la plate-forme Java et des outils de référence pour cette plate-forme, mais est une approche qui est transférable et donc les idées fondamentales s'appliquent généralement.

+0

converti en wiki, par requête @ Lorenzo. –

Répondre

5

En tant que solution de test de charge libre, j'ai utilisé Pylot. Je suis sûr qu'il y a des solutions mieux payées si vous avez un budget. Si vous pouvez estimer le trafic, c'est l'outil dont vous évaluez la capacité d'évolution de votre projet. L'utilisation du cache de sortie asp.net peut améliorer considérablement les performances de votre site en cas de charge, essayez donc ceci si vos pages vues par seconde sont inférieures à ce dont vous avez besoin.

Pour optimiser votre côté client rendu l'utilisation de la vitesse:

  • YSlow plug-in Firefox
  • PageSpeed ​​plug-in Firefox par Google
  • Firebug plug-in Firefox pour vérifier le nombre de requêtes HTTP sont pas excessif et js/ressources sont mises en cache css, etc.

Si le développement d'une forme Web asp.net application, vous pouvez activer le traçage de la page en modifiant votre directive page donc il contient

<%@ Page Trace="true"> 

Cela vous aidera à trouver les contrôles qui prennent plus de temps à rendre.

Si vous avez un problème avec le code côté serveur étant lent, j'ai trouvé que c'est presque toujours la base de données qui cause le problème. Vous devez vérifier SQL qui est lent pour retourner un résultat; Si vous en trouvez, vous devez chercher à appliquer de nouveaux index à vos tables. Si votre application est trop bavarde avec la base de données, vous devez chercher à réduire le nombre d'appels à la base de données. Pour trouver ces problèmes, vous pouvez utiliser SQL Server Profiler; ceci est livré avec l'édition SQL Server 2005/2008 Developer.

Si vous avez le budget, vous voulez absolument vérifier Redgate ANTS Performance Profiler pour profiler votre code de côté de serveur.

+0

merci pour votre réponse. Je vais jeter un oeil à ces outils! – Lorenzo

+1

+1 pour ANTS, c'est un excellent outil. –

1

J'utilise dotTrace pour profiler tout en utilisant jMeter pour simuler le trafic. J'ai trouvé dotTrace d'être bien mieux intégré que ANTS, et généralement les rapports plus utiles.

0

Profiling a multi-tiered, distributed, web application (server side) montre une approche de haut niveau (profilage au niveau URL) est:

    plate-forme
  • et la langue indépendante
  • entièrement non invasive
  • donne une image de haut niveau de l'endroit où votre demande est passer la majeure partie de son temps

L'idée est d'utiliser journaux Web existants et les convertir en un "une image vaut un 1000 mots" type de graphique.

Cette approche peut ne pas être suffisante pour les cas d'utilisation nécessitant des détails de niveau plus fin, mais elle m'a aidé personnellement, et pourrait valoir la peine d'être explorée.

Questions connexes