J'ai étudié une lente chauffe de temps pour mon application et j'ai eu des résultats inattendus.
Essais sur divers Azure Vm a montré le warm-up de temps pour être bien liés à l'application de performances du serveur (donc c'est pas la demande externe, y compris sql), mais ce qui est vraiment intéressant est la comparaison d'Azure Web Apps et ma propre machine (toutes les heures sont des moyennes à partir d'environ 3 pistes):
VM A0: >1m
VM A2: 13s
VM D2V2: 6.8s
VM D5V2: 7.8s
Wep App P2: 25s
Web App S2: 26.5s
My local machine: 6.6s
Ma machine locale est un i5 cadencé à 3.3 GHz.
Le local de la machine est plus rapide , même si il se connecte à la même base de données SQL Azure-dessus de l'internet et de la demande inclut Entité Cadres de vérification de modèle.
Tous les tests d'utilisation .NET 4.6.1, la version la plus récente à ce moment.
Apparent conclusion:
- Mon 4 ans ordinateur de bureau est plus rapide que n'importe quelle taille d'Azure VM pour des emplois qui ne sont pas parallélisable.
- Azure Web Apps de fonctionner sur des pommes de terre, même si vous êtes prêt à dépenser 500 dollars par mois.
Cela semble louche. Toutes les idées de ce qui pourrait se passer? Ou de quoi tester?
EDIT après quelques profilage: Aucun des éléments suivants ne jette aucune lumière sur ma question, mais c'est toujours intéressant de l'information (testé sur un autre A2 VM avec 20s temps la demande totale, tandis que le profileur être joint en annexe):
- 58% jitting.
- E / s de fichier de blocage est pratiquement nulle (l'application a été commencé avant, donc je suppose que toutes les dll requis les pièces sont dans la mémoire cache).
- <1% est SQL Azure demandes.
- Le reste de l'90% de temps de fonctionnement doit donc être .NET de l'exécution ou de profiler les frais généraux.
- Le testeur lui-même a tout à fait les frais généraux, que la requête s'exécute en environ 15s sans elle (j'ai utilisé un essai de JetBrains dotTrace, que j'aime vraiment)
- 50% du temps est au cours de la première demande avec Entity Framework, 80% de la jitting
- 15% de la première utilisation de SignalR, presque pas de jitting (en faisant un peu de réflexion-non-sens)
Presque pas de parallélisation est fait.