Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 15688|Resposta: 0

[ASP.NET] 8 maneiras de melhorar o desempenho da sua API Web ASP.NET

[Copiar link]
Publicado em 11/01/2016 14:37:43 | | | |
ASP.NET Web API é uma ótima tecnologia. Escrever APIs Web é tão fácil que muitos desenvolvedores não gastam tempo estruturando suas aplicações para obter um bom desempenho de execução.
Neste artigo, abordarei 8 técnicas para melhorar o desempenho de APIs Web ASP.NET.
1) Usar a ferramenta de serialização JSON mais rápida
A serialização do JSON tem um impacto crítico no desempenho de toda a API Web ASP.NET. Em um dos meus projetos, troquei o serializador JSON.NET para o ServiceStack.Text por um ano e meio.
Medi que o desempenho da Web API melhorou cerca de 20%. Recomendo muito que você experimente esta ferramenta de serialização. Aqui estão alguns dados comparativos recentes sobre o desempenho de ferramentas populares de serialização.
SerializerPerformanceGraf
Fonte: theburningmonk
Atualização: Parece que parece que o StackOverflow usa Jil, a ferramenta de serialização JSON que eles alegam até hoje. Um dado de teste pode ser encontrado na página do GitHub Jil serializer.
2) Serializar manualmente JSON a partir do DataReader
Usei essa abordagem nos meus projetos e recebi benefícios de desempenho.
Você pode criar manualmente strings JSON a partir do DataReader e evitar a criação desnecessária de objetos, assim não precisa pegar valores do DataReader e escrever em objetos, depois pegar valores desses objetos e usar o JSON Serializer para gerar JSON.
Use o StringBuilder para gerar JSON e retorne o StringContent no final como o conteúdo da resposta na WebAPI.

Você pode conferir mais maneiras de fazer isso no blog do Rick Strahl
3) Usar outros formatos de protocolo (buffer de protocolo, pacote de mensagens) tanto quanto possível
Se você puder usar outros formatos de mensagem no seu projeto, como Protocol Buffers ou MessagePacks, em vez de usar JSON.
Você terá uma enorme vantagem de desempenho, não só porque os Protocol Buffers são muito rápidos em serialização, mas também porque são formatados mais rápido que o JSON nos resultados retornados.
4) Implementar compressão
Use GZIP ou Deflate na sua API Web ASP.NET.
A compressão é uma forma simples e eficaz de reduzir o tamanho e a capacidade de resposta dos pacotes de resposta.
Esse é um recurso muito necessário, você pode conferir mais artigos sobre compressão no meu blog ASP.NET Web API, compressão GZip, ActionFilter com 8 linhas de código.
5) Uso do cache
Usar cache de saída no método Web API é profundo. Por exemplo, se um grande número de usuários acessa conteúdo de resposta que muda apenas uma vez ao dia.
Se você quiser implementar cache manual, como armazenar senhas de usuário na memória, veja meu post no blog Maneira simples de implementar cache em ASP.NET Web API.
6) Usar ADO.NET típico sempre que possível
Escrever ADO.NET manualmente ainda é a forma mais rápida de obter valores do banco de dados. Se o desempenho das suas APIs web é realmente importante para você, então não use ORMs.
Você pode ver comparações de desempenho entre os ORMs mais populares.
ORMMapper


Código de busca elegante e escrito à mão são rápidos e, de fato, todos os ORMs são mais lentos que os três.
O LLBLGen com cache de resultados é rápido, mas precisa iterar novamente o conjunto de resultados e instanciar o objeto na memória novamente.
7) Implementar uma abordagem assíncrona na Web API
O uso de um serviço assíncrono de API Web aumenta drasticamente o número de requisições HTTP processadas pelas APIs Web.
A implementação é simples, basta usar a palavra-chave assíncrona e mudar o tipo de valor de retorno do seu método para Tarefa.

8) Retorna múltiplos conjuntos de resultados e combinações de conjuntos
Reduzir o número de transferências não é benéfico apenas para múltiplos bancos de dados, mas também para APIs Web, que permitem usar o poder dos conjuntos de resultados.
Isso significa que você pode extrair múltiplos conjuntos de resultados do DataReader, veja o seguinte código de demonstração:

Você pode retornar múltiplos objetos em uma única resposta de uma API Web, tente combinar os objetos retornados e retorne os seguintes objetos:

Isso reduzirá as requisições HTTP para sua API WEB.
Obrigado por ler este artigo.




Anterior:SyntaxError: Missing parentheses in call to print
Próximo:vsftpd para adicionar novos usuários
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com