2009-07-03 12 views
2

Nous souhaitons déterminer le délai d'exécution de certaines actions dans une application ASP.NET MVC. Nous utilisons ActionFilters pour démarrer et arrêter une minuterie chaque fois qu'une action de contrôle est appelée. Le résultat est un petit jeu de données un peu comme ceci:Enregistrement des métriques de performance ASP.NET MVC

{ 
    ContollerName: 'Account', 
    ActionName: 'Index', 
    ExecutionDuration: 287, 
    TimeRecorded: '2009-07-02 17:34:54' 
} 

Nous voulons faisceau ces données hors d'un service Web afin que nous puissions recueillir et analyser plus tard. Par exemple, nous pourrions découvrir que Account/Index est l'action la plus lente de l'application. En fait, si nous recevons 1 000 requêtes par seconde, effectuer 1 000 appels de service par seconde n'est pas très intelligent. cela nuira aux performances de l'application.

Existe-t-il un moyen de réaliser des appels de service tamponnés? Ou y at-il des bibliothèques pour faire cela? Ou est notre architecture tout faux?

Pensées appréciées.

Répondre

3

Je n'ai pas l'habitude de lier les réponses aux questions ici, mais le gars de whiletrue.com a fait un très bon travail de profilage MVC ici. Son diaporama couvre à peu près tout ce qu'il a fait pour le mettre en place.

http://blog.whiletrue.com/2009/04/aspnet-mvc-performance/

+0

lien très intéressant, merci! –

+0

C'est une ressource géniale, gentille! Il ne répond pas tout à fait à ma question, car nous voulons toujours collecter ce type de données opérationnelles plutôt que d'exécuter ab.exe pour l'analyse comparative. – tobinharris

0

Vous pouvez créer un contrôleur avec une action qui peut prendre ces quatre valeurs et simplement frapper votre propre site et dans ce contrôleur en file d'attente les informations vers une base de données. Ensuite, avoir un lot de traitement différent soumettre l'information à votre service Web.

Questions connexes