Este artigo foi traduzido por máquina.

Caixa de ferramentas

Ferramentas e técnicas para criar perfis de código do .NET

Terrence Dorsey

Baixe o código de exemplo

Terrence DorseyA epigrama pithy "otimização prematura é a raiz de todo mal" foi por diversas vezes atribuído ao longo dos anos a Donald Knuth, William Wulf e c.a.r. Hoare. (Parece que Hoare originou-se da frase, mas Knuth Obtém crédito para popularizá-lo. Consulte bit.ly/fW1jWE para obter um resumo dos pensamentos de Knuth sobre o assunto.)

Então o que isso significa para você, o intrépido.Desenvolvedor NET? Você deve ignorar o desempenho e o código para o conteúdo do seu coração? É melhor seguir os caprichos do IntelliSense e dependem de hardware cada vez mais rápida para dimensionar suas aplicações?

Bem, não.

Uma parte importante do teste é certificando-se de seu aplicativo não só executa sem erros, mas também executa de forma eficiente e responsiva. Que é onde as ferramentas e técnicas de criação de perfil de código entram em jogo. Estas permitem que você, como parte do processo de testes e compilação, avaliar seu código para construções — e erros imediatos — que são susceptíveis de causar problemas. Você começa um heads-up automático que você aponta diretamente nos locais em seu aplicativo que necessidade de refatoração.

Noções básicas de criação de perfil

Um bom lugar para começar a aprender sobre.Perfil de líquido é o artigo do projeto de código por Paul Glavich, "criação de perfil de desempenho de um.Aplicativo NET"(bit.ly/fpua6i). Você não só terá alguns princípios básicos.Criação de perfil de líquido, mas Glavich também apresenta o Profiler de FORMIGAS (que vamos chegar a um pouco mais tarde).

Outro grande ponto de partida é o post do blog de Amirthalingam Prasanna, "criação de perfil seu.Código NET"(bit.ly/dDXWsF). Ele começa listando as 10 razões por que você deve criar o perfil de seu código, em seguida, percorre o processo usando o Profiler CLR (bit.ly/eSJyWd).

Passo a da Brian Long extensa passo da Microsoft.NET Framework APIs, de criação de perfil ".NET Internals: A criação de perfil de API "(bit.ly/hNEDYP), você vai aprender sobre contadores de desempenho, o Monitor de desempenho e as APIs relevantes. Você também verá como criar suas próprias ferramentas de criação de perfil simples para ilustrar como funcionam as APIs.

O CLR agora fornece amplo suporte de criação de perfil, e David Broman mostra-lhe como usá-lo em seu blog post, "geradores de perfis, em processo instâncias CLR de side-by-side e um equipamento de teste grátis" (bit.ly/dYeRnQ). Certifique-se de ler através dos arquivos do site da Broman — há um monte de grande informação lá.

Perfil fica realmente importante quando você está fazendo alto-desempenho, altamente dimensionados programação. Se esse for seu beco, confira o webcast "SC08: Windows HPC: multi-core paralelo código de criação de perfil no VS2010" no canal 9 (bit.ly/gyeKPi).

Não perca o Blog da equipe do Visual Studio Profiler (blogs.msdn.com/b/profiler) para criação de perfil de dicas, truques e anúncios mais recentes.

Escrever código mais eficiente

Naturalmente, uma maneira de evitar a dor do teste, criação de perfil e refatoração seu código repetidamente é escrever código mais eficiente em primeiro lugar. Aqui estão três artigos que discutem as práticas recomendadas para escrever aplicativos que necessitará, espera-se que alguns menos percorre o profiler para alcançar a velocidade que você esperava para:

  • "Guia para melhorar o desempenho do código em.NET: parte I "por Satesh Arveti em c# canto (bit.ly/gyImk9)
  • "Writing C eficiente e otimização de código C" por Koushik Ghosh em projeto de código (bit.ly/icnYEi)
  • "Escrita de alto desempenho.NET Code"de Juan A Rodriguez e Simonijt Dutta da Intel (intel.ly/fvweaP)

Ferramentas de criação de perfil

Esta é a coluna Toolbox, então vamos falar de ferramentas. Utilitários de software de criação de perfil executam análise dinâmica de código do seu aplicativo enquanto ele estiver sendo executado. Aqui estão algumas ofertas livre e comerciais, que você pode querer tomar para uma rodada.

AMD Analisador de desempenho CodeAnalyst (bit.ly/gAqPeu) é uma ferramenta gratuita de criação de perfil de — você adivinhou — Advanced Micro Devices Inc. que permite a você criar o perfil de C/C++, Fortran, Java e.Código de líquido. É especialmente projetado para otimizar seu código para executar vários segmentos em chipsets AMD. CodeAnalyst se integra com o Visual Studio 2003 até 2010 e executado em sistemas do Windows XP através do Windows 7 em x86 e AMD64 arquiteturas.

Profiler EQATEC (bit.ly/h2hDCF) é um gerador de perfil código projetado especificamente para fazer seu.NET apps correr mais rápido. Ele oferece suporte a.NET Framework 2.0 e posteriores, Windows Presentation Foundation (WPF), Silverlight e o.NET Compact Framework. É também o primeiro profiler para oferecer recursos de criação de perfil Windows Phone 7 no emulador e em dispositivos. Estão disponíveis licenças livres e pagas. Consulte o site para mais detalhes.

EQATEC Profiler

Profiler EQATEC

JetBrains dotTrace (jetbrains.com/profiler) é na verdade um conjunto de dois leve.NET apps de criação de perfil: dotTrace4 4 desempenho e dotTrace 3.5 memória. dotTrace permite que aplicativos de destino usando o.NET Framework 1.0 através de 4.NET Compact Framework 3.5 e Silverlight 4. Você pode executar análise de rastreamento, amostragem ou linha por linha em sistemas locais e remotos. dotTrace se integra com o Visual Studio 2005 até 2010. JetBrains atualmente oferece uma versão gratuita limitada no tempo e um número de opções de licenciamento. Consulte o site para mais detalhes.

Red Gate FORMIGAS desempenho Profiler (bit.ly/g1yVEt) e FORMIGAS Memory Profiler (bit.ly/h3JzAX) é um outro conjunto de comercial perfil ferramentas que analisam os aplicativos Windows Forms, ASP.NET Web apps, SharePoint e Silverlight 4. Com o.NET Framework 4, as FORMIGAS desempenho Profiler suporta CLR perfil assim que você pode anexar a processos em execução. Você também pode obter dados de desempenho para consultas SQL disparadas a partir de seu código. Ambos os produtos suportam o.NET Framework 1.0 através de 4 e Windows XP através do Windows 7 e podem ser executados diretamente do Visual Studio. Consulte o site da Red Gate de preços.

SmartBear aqtime Pro (bit.ly/ePmENJ) é um perfil de desempenho e memória e recursos de depuração de programa para o direcionamento a.Código NET Framework, Java, JScript e VBScript. Você pode usar AQtime Pro para o perfil de ambos aplicativos de 32 bits e 64 bits, e o gerador de perfil pode ser diretamente integrado em ambientes de desenvolvimento de CodeGear RAD Studio e Visual Studio 2002 até 2010. AQtime Pro também fornece um depurador programável usando uma arquitetura COM base em assim que você pode criar perfis personalizados. Baixe uma versão gratuita limitada no tempo, ou contate a ostentar inteligente para obter os preços atuais.

SmartBear AQtime Pro

SmartBear AQtime Pro

SlimTune (code.google.com/p/slimtune) é uma ferramenta de criação de perfil e análise de desempenho de livre, open source para.Desenvolvimento líquido. Desenvolvimento está atualmente em beta, e embora você pode direcionar aplicativos x 86 e x 64, única de criação de perfil baseado em amostra está disponível. Código-fonte está disponível se você quer cortar no-lo você mesmo.

Software elétrica GlowCode (glowcode.com) é outro desempenho comercial e o memory profiler voltado em 32 e 64 bits, nativo e misto código gerenciado escrito em C, C++ ou qualquer.Linguagem compatível com o NET Framework. GlowCode integra-se diretamente com o Visual Studio 2010 o perfil do seu aplicativo sem deixar o IDE. Uma licença de avaliação de tempo limitado está disponível juntamente com licenças de usuário único e flutuantes. Verifique o site para mais detalhes.

Perfil de acesso de dados

A camada de dados do seu aplicativo precisa amor, também. Aqui estão algumas ferramentas e recursos para criação de perfil de acesso a dados.

Se você estiver usando o SQL Server 2008 R2, sql Server Profiler é incluído como parte da instalação; Ele pode analisar consultas, expressões e instruções de Transact-SQL e assim por diante. Outros grandes recursos para começar a trabalhar com o SQL Server Profiler incluem:

Se você estiver usando o SQL Server 2005 ou 2008 Express Edition, no entanto, você não terá acesso a ferramentas de criação de perfil incluído na versão completa do SQL Server. Nesse caso, você vai querer ter um olhar para o livre AnjLab open source sql Server Express Edition Profiler (bit.ly/eNg5oi).

Entidade Framework Profiler (efprof.com) é projetado para analisar e em tempo real de depuração de acesso a dados no seu código usando o Entity Framework. É uma ótima ferramenta para descobrir o que realmente está acontecendo nos bastidores. Entidade Framework Profiler é um produto comercial, mas você pode solicitar uma licença de avaliação de 30 dias para lhe dar um giro em seus próprios projetos.

Entity Framework Profiler

Entidade Framework Profiler

Teste de carga do SQL (sqlloadtest.codeplex.com) é um projeto do CodePlex criado pela equipe do Visual Studio Team System (VSTS) Ranger para gerar testes de unidade de rastreamentos do SQL Profiler e reproduzir as chamadas de banco de dados de rastreamento usando o teste de carga do Visual Studio. É uma ferramenta útil para testar aplicativos centrados em dados que não são diretamente carga testáveis.

Finalmente, não se esqueça de LINQPad (linqpad.net) como uma ferramenta útil para avaliar consultas LINQ, bem como seu código c# e Visual Basic. Enquanto não é realmente um gerador de perfil, é uma maneira prática de trabalhar por iterações de seu código fora do contexto de seu projeto.

Terrence Dorsey  é o editor técnico da MSDN Magazine*.*Você pode ler seu blog em terrencedorsey.com ou segui-lo no Twitter em twitter.com/tpdorsey.