Introdução
Após uma conversa interessante com o Roger Luiz Pereira (grande desenvolvedor e amigo de trabalho) no escritório, alguns questionamentos interessantes foram levantados sobre os métodos.
Um deles está relacionado com o quanto de desempenho a implementação com async/await no lado do servidor contribui no desempenho. O objetivo deste post é contemplar este cenário nos trabalhos.
Método
Para testar esse cenário, utilizei exatamente a mesma implementação do cliente utilizada na parte 14 para o lado do cliente, com um parâmetro a mais para utilizar o servidor síncrono (método GetServiceTablesAsync), invés do servidor assíncrono (GetServiceTablesAsynchronousAsync). A implementação síncrona é a mesma utilizada na parte 4.
Resultados
A mesma metodologia é usada nestes números. Os testes são executados 10 vezes e o resultado apresentado aqui é a média dos 10. Os resultados seguem na tabela abaixo:
Conclusão
Como vemos, a implementação do servidor assíncrona trás benefícios tangíveis no desempenho total. Para NET.TCP: ~37% mais rápido e para SOAP ~43% mais rápido.
Código-fonte
O código-fonte de todos os exemplos está atualizado no Git Hub: https://github.com/ericlemes/IntegrationTests