DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo .net magazine 70 - Profiling

Este artigo apresenta como utilizar a ferramenta de profiling de código existente no Visual Studio 2008 para detectar gargalos de desempenho em aplicações .NET. Através da criação de uma aplicação WinForms com trechos de código não otimizados, o leitor será conduzido por um overview completo das funcionalidades analíticas disponibilizadas pela ferramenta.






Profiling

Melhore o desempenho de suas aplicações .NET

 

Provavelmente você já tenha lido em revistas ou sites, dicas ou até mesmo artigos inteiros sobre boas práticas de desempenho no desenvolvimento de aplicações .NET. Mais provável ainda é que você já tenha desenvolvido alguma funcionalidade que possuía um desempenho normal, mas que após algumas semanas de uso, se tornou tão lenta a ponto de gerar reclamações do cliente. No mínimo, você certamente já utilizou alguma aplicação cuja lentidão extrema tenha lhe irritado ao ponto de perder a paciência e finalizar o processo através do gerenciador de tarefas.

Comumente relacionados ao volume de dados tratado pelo sistema, mas não exclusivos de aplicações com alto troughput (quantidade de dados transportados de um local para outro), arrisco afirmar que problemas de desempenho (ou performance) são tão antigos quanto a própria programação. A tão requisitada escalabilidade, afinal, pode ir por água abaixo tão logo encontre objetos criados a revelia, algoritmos mal construídos ou operações de leitura e escrita excessivamente granulares.

Apesar de relativamente fáceis de enumerar, infelizmente problemas de desempenho nem sempre são tão facilmente detectáveis. Assim como uma consulta no banco de dados que tem bom desempenho com um filtro A se torna lenta demais com um filtro B ligeiramente diferente, trechos de código podem e provavelmente terão um desempenho de maneira diferenciada de acordo com o volume e a característica dos dados com os quais são executados. Encontrar seus gargalos é uma questão de criteriosa análise.

Por se tratarem de problemas tão comuns e antigos, seria esperado que a detecção e resolução destes problemas já estivessem em boa parte automatizadas e facilitadas ao desenvolvedor. Ferramentas de teste de stress deram um grande passo ao permitir que determinada funcionalidade da aplicação seja avaliada como uma blackbox: saber que o processamento de um lote de registros está lento é um grande começo. Num ambiente cada vez mais complexo, entretanto, o gargalo pode estar em diversos lugares: latência de rede, lógica da aplicação, banco de dados etc.

Buscando facilitar e aperfeiçoar a análise no que se refere principalmente ao desempenho do código fonte gerado, a Microsoft já disponibilizava junto ao Visual Studio uma ferramenta de profiling de código desde suas versões mais antigas. A partir da versão 2005, entretanto, o conjunto de funcionalidades de análise e comparação foi amplamente incrementado, tornando o profiler embutido no IDE um verdadeiro arrasa quarteirão na detecção de gargalos de desempenho no código fonte de qualquer aplicação .NET.

 

Nota: o recurso de profiling de código só está disponível na versão Team System do Visual Studio 2008.

 

Você verá neste artigo como as funcionalidades de análise e comparação da ferramenta de profiling de código do Visual Studio 2008 podem auxiliar na melhoria do desempenho de seu código fonte. A partir da construção de uma aplicação WinForms realmente simples, será apresentado o passo a passo necessário à otimização de qualquer tipo de aplicação .NET, permitindo que você encontre seus problemas de performance de maneira bastante simples.

 

Nota do DevMan

Profiling é o ato de investigar o comportamento de um software baseando-se em informações obtidas em tempo real (durante a execução desse software). Desse forma, podemos dizer que ferramentas de profiling realizam uma análise dinâmica de determinado software. O principal motivo do profiling é identificar trechos de sistemas que precisam ser melhorados para aumentar a velocidade, diminuir o consumo de memória geral.

 

Construindo a aplicação

Para que possamos ver todas as funcionalidades de profiling disponibilizadas pelo Visual Studio na prática, construiremos uma aplicação bastante simples, mas que mesmo assim possui problemas de desempenho passíveis de detecção. É possível que ao longo da construção do exemplo você já perceba pontos que degradarão o desempenho, mas não os corrija. O objetivo do artigo é apresentar as funcionalidades de profiling, não discorrer sobre pontos de gargalo comuns em aplicações .NET.

Antes de tudo, abra o Visual Studio 2008 Team System em sua máquina e na página inicial clique em File > New > Project. Escolha a opção Windows Forms Application no nodo Visual C# > Windows e dê um nome de sua preferência ao projeto.

Construiremos para o exemplo uma aplicação que repete e inverte strings. Para isto, arraste e posicione alguns componentes no formulário Default.aspx, chegando num resultado semelhante ao da Figura 1.

 

Figura 1. Componentes necessários para a aplicação de exemplo

 

Inseridos os componentes, partiremos agora para a adição da lógica necessária à aplicação. Por motivos de simplicidade do exemplo e foco do artigo, não serão levadas em considerações questões de arquitetura, segurança e, é claro, desempenho (principalmente neste primeiro passo).

Dê dois cliques sobre o botão btnRepetir para inserir o código de tratamento do evento. Este botão será responsável por repetir o texto do componente txtRepetir dez mil vezes sempre que for clicado. Além disto, ele deve adicionar o texto repetido ao componente txtItens, permitindo que o usuário visualize os itens gerados. Para isto, adicione o trecho de código existente na Listagem 1 ao evento.

"



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
José Filipe Néis

é formando em Sistemas de Informação pela UFSC. Atualmente atua como coordenador de sistemas na Move CRM, onde trabalha com a análise, projeto e desenvolvimento de soluções para telemarketing utilizando .NET, Delphi e SQL Server.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03