Je configure un serveur de développement et je souhaite le configurer pour servir des pages ASP.NET en utilisant Mono. Je prévois d'utiliser Cherokee et Mono ( http://www.cherokee-project.com/doc/cookbook_mono.html ) et je me suis demandé si quelqu'un avait fait des tests de performances en comparant la pile basée sur Unix à la pile basée sur Windows.
performance
mono
.net
asp.net
Larry Smithmier
la source
la source
Réponses:
Lorsque vous testez des charges de travail Mono / Linux vs .NET / Windows, vous devez vous rappeler qu'il y a plus en jeu que l'environnement d'exécution.
Il existe des domaines dans lesquels Linux fonctionne mieux que Windows (la plupart des opérations IO et réseau ont tendance à être plus rapides pour des programmes C comparables). Dans le même temps, .NET dispose d'un garbage collector plus avancé et d'un compilateur JIT plus avancé.
En ce qui concerne les bibliothèques de classes, cela dépend vraiment des chemins de code que vous utilisez. Comme JacksonH l'a dit dans un article précédent, vous pouvez accéder à des chemins de code qui ont été optimisés dans une implémentation, mais pas dans l'autre, et vice versa.
Sur les charges de travail ASP.NET, vous devez vous rappeler que la configuration par défaut achemine toutes les demandes entrantes vers un seul processus "travailleur", mod_mono et Cherokee utilisent une approche similaire:
(source: mono-project.com )
Au moins avec Apache, nous prenons en charge un mécanisme où vous pouvez diviser les charges de travail des applications entre plusieurs travailleurs, ce qui aide sous des charges élevées car il évite tout verrouillage en cours et donne à chaque travailleur un pool de threads complet à partir duquel travailler:
(source: mono-project.com )
Les détails sur la façon de configurer cette configuration sont disponibles ici:
http://mono-project.com/Mod_mono
la source
C'est un peu une non-réponse. Mais il n'y a pas de vraie réponse ici. Malheureusement, cette chose dépend fortement de l'application. Votre application peut toucher quelque chose que Mono réussit très bien ou vous utilisez peut-être beaucoup quelque chose qui est mal implémenté ou qui a des bugs. Ce n'est pas vraiment un cas où Mono est X fois plus lent / plus rapide que IIS.
Ma suggestion est de prendre votre application, de la déployer sur deux instances EC2 différentes (une Windows et une mono) et de faire vos tests là-bas. Si vous rencontrez des problèmes majeurs sur l'instance Mono, veuillez les signaler et nous essaierons d'améliorer les choses.
Cela étant dit, je peux vous dire par expérience personnelle que Mono aspx fonctionne très bien.
la source