Análise de Desempenho Usando Profilers

Desde minhas primeiras incursões em Java (em 1996, quando a linguagem ainda estava em beta) eu me vi às voltas com código exigente em termos de memória e capacidade de processamento (principalmente quando lidando com aprendizado de máquina e métodos evolucionários).

A “otimização prematura é a raiz de todo mal”, mas otimização tardia também pode ser difícil e trabalhosa. Identificar os gargalos do seu sistema (performance bottlenecks) é fundamental para melhorar o desempenho do software. Por causa disso, mais cedo ou mais tarde é preciso realizar alguma forma de profiling - identificar quanto tempo seu sistema gasta em cada tarefa, e quanta memória é alocada por quais objetos.

Existem várias técnicas para isso, e acho que já usei quase todas, do mundano println(System.getCurrentTime()…) a Java Virtual Machine Profiling Interface. Nenhuma delas superou um bom programa dedicado especificamente a essa tarefa. Há alguns anos, meu preferido era o JProbe; recentemente, esse título vai para o excelente Yourkit Profiler.

Detalhe da tela do YourKit Java Profiler

Disponível para Java e C#, o Yourkit Profiler integra-se facilmente a IDEs como o Eclipse, e realiza praticamente todas as análises que procuro, com baixíssimo overhead e uma interface gráfica completa e agradável. Não entrarei em detalhes sobre todos os recursos disponíveis; o site é bem completo em relação a isso, e oferece uma versão de avaliação válida por 15 dias.

O preço do Yourkit Java Profiler é bastante razoável, e licenças gratuitas para projetos open-source ativos estão disponíveis (obtivemos licenças para o uso no HyperGraphDB e RelEx, dois projetos de software livre em que participo ativamente do desenvolvimento).

A cereja em cima do bolo é a equipe da YourKit: eu fiz um breve comentário sobre o suporte a profiling de métodos nativos e me surpreendi quando os desenvolvedores me procuraram pedindo por informações do que eu precisava, e poucos dias depois disseram que vão incluir esses recursos no programa.

Se seu programa em Java ou C# está lento ou consumindo memória demais, experimente levar o YourKit Profiler para passear! :-)

DISCLAIMER: Esse post foi resultado exclusivamente de experiências pessoais, e foi escrito de forma espontânea; exceto pelas licenças gratuitas fornecidas para os projetos open-source, comentadas acima, não há qualquer associação entre mim ou o Vetta Labs e a YourKit, LLC.

Detalhe da tela do YourKit Java Profiler

Disponível para Java e C#, o Yourkit Profiler integra-se facilmente a IDEs como o Eclipse, e realiza praticamente todas as análises que procuro, com baixíssimo overhead e uma interface gráfica completa e agradável. Não entrarei em detalhes sobre todos os recursos disponíveis; o site é bem completo em relação a isso, e oferece uma versão de avaliação válida por 15 dias.

O preço do Yourkit Java Profiler é bastante razoável, e licenças gratuitas para projetos open-source ativos estão disponíveis (obtivemos licenças para o uso no HyperGraphDB e RelEx, dois projetos de software livre em que participo ativamente do desenvolvimento).

A cereja em cima do bolo é a equipe da YourKit: eu fiz um breve comentário sobre o suporte a profiling de métodos nativos e me surpreendi quando os desenvolvedores me procuraram pedindo por informações do que eu precisava, e poucos dias depois disseram que vão incluir esses recursos no programa.

Se seu programa em Java ou C# está lento ou consumindo memória demais, experimente levar o YourKit Profiler para passear! :-)

DISCLAIMER: Esse post foi resultado exclusivamente de experiências pessoais, e foi escrito de forma espontânea; exceto pelas licenças gratuitas fornecidas para os projetos open-source, comentadas acima, não há qualquer associação entre mim ou o Vetta Labs e a YourKit, LLC.

Murilo Saraiva de Queiroz, a.k.a. muriloq, 30, tem graduação em Ciência da Computação e Mestrado em Engenharia Eletrônica, ambos pela UFMG. Atualmente ele desenvolve projetos nas áreas de mercado financeiro, bioinformática e processamento de linguagem natural no Vetta Labs (da qual é sócio) e em projetos open-source do Singularity Institute for Artificial Intelligence. Murilo mora em Belo Horizonte com sua esposa Cyntia, seu filho Max e um amontoado de videogames e gadgets.

--> Desenvolvimento 0 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...