Ao testar cargas de trabalho Mono / Linux vs .NET / Windows, você deve se lembrar de que há mais em jogo do que apenas o ambiente de tempo de execução.
Há áreas em que o Linux tem um desempenho melhor que o Windows (a maioria das operações de E / S e de rede tendem a ser mais rápidas para programas C comparáveis). Ao mesmo tempo, o .NET possui um coletor de lixo mais avançado e um compilador JIT mais avançado.
Quando se trata de bibliotecas de classes, realmente depende de quais caminhos de código você está usando. Como JacksonH disse em uma postagem anterior, você pode encontrar caminhos de código que foram otimizados em uma implementação, mas não na outra, e vice-versa.
Nas cargas de trabalho do ASP.NET, você deve se lembrar que a configuração padrão encaminhará todas as solicitações recebidas para um único processo de "trabalho", mod_mono e Cherokee usam uma abordagem semelhante:
(fonte: mono-project.com )
Pelo menos com o Apache, oferecemos suporte a um mecanismo no qual você pode dividir as cargas de trabalho de aplicativos em vários trabalhadores, o que ajuda sob altas cargas, pois evita qualquer bloqueio em processo e oferece a cada trabalhador um pool de threads inteiro para trabalhar:
(fonte: mono-project.com )
Os detalhes sobre como configurar esta instalação estão disponíveis aqui:
http://mono-project.com/Mod_mono