Open Source Java Profilers [fechado]


94

O que vocês podem recomendar para usar com Java?

O único requisito é que seja open source ou não tenha uma licença acadêmica muito cara.


4
Quando você diz código aberto, você quer dizer gratuito? Eles têm significados diferentes. Sua pergunta é sobre _perfilers baratos?
Robert Munteanu

3
grátis como em liberdade ou grátis como em grátis? Oh que confusão!
Tarski

Respostas:


61

O VisualVM que vem com o jdk6 possui um profiler básico dentro dele. O VisualVM é fornecido com o jdk, portanto, se você tiver o jdk6 instalado, provavelmente também o terá instalado.

https://visualvm.github.io/


3
O criador de perfil VisualVM é uma versão independente do NetBeans. É um começo MUITO bom.
Thorbjørn Ravn Andersen

2
Definitivamente, baixe a versão mais atualizada em: visualvm.dev.java.net . Além disso: este é o profiler que o NetBeans usa.
Peterdk

Eu usei VisualVMantes com sucesso, mas estava travando enquanto tentava criar o perfil de um aplicativo Tomcat. Isso funcionou para mim: github.com/jvm-profiling-tools/honest-profiler
Lambart

21

você tem uma lista aqui (listando-os abaixo, caso o link seja quebrado)

  • JMemProf
  • JMP
  • DrMem
  • JTreeProfiler
  • NetBeans Profiler
  • API JAMon
  • JBoss Profiler
  • MessAdmin
  • Infravermelho
  • TomcatProbe
  • Java Interactive Profiler (JIP)
  • Profiler4j
  • Cronômetro
  • JMeasurement
  • DJProf
  • TIJmp
  • Allmon
  • Appspy
  • EurekaJ
  • japex
  • OKTECH Profiler
  • Perf4j

1
Você pode adicionar este à lista: github.com/jvm-profiling-tools/honest-profiler
Lambart


10

Java possui um criador de perfil básico chamado HProf . Acho útil comparar os resultados que ele fornece com os resultados de profilers de recursos mais completos.


1
Eu uso o HPROF há anos - e embora possa não ser bonito, ele me ajudou a resolver incontáveis ​​problemas de memória e desempenho.
Gandalf

1
O HPROF freqüentemente encontra diferentes pontos para otimizar. Costumo usá-lo depois que o YourKit não me dá mais pontos óbvios para otimizar.
Peter Lawrey

2
Removido desde jdk 9. openjdk.java.net/jeps/240
user2418306

5

A ferramenta de código aberto jvmtop inclui um gerador de perfil de console básico. Exemplo de saída:

 JvmTop 0.7.0 alpha - 15:16:34,  amd64,  8 cpus, Linux 2.6.32-27, load avg 0.41
 http://code.google.com/p/jvmtop

 Profiling PID 24015: org.apache.catalina.startup.Bootstrap

  36.16% (    57.57s) hudson.model.AbstractBuild.calcChangeSet()
  30.36% (    48.33s) hudson.scm.SubversionChangeLogParser.parse()
   7.14% (    11.37s) org.kohsuke.stapler.jelly.JellyClassTearOff.parseScript()
   6.25% (     9.95s) net.sf.json.JSONObject.write()
   3.13% (     4.98s) ....kohsuke.stapler.jelly.CustomTagLibrary.loadJellyScri()

4

3
Nunca consegui configurar o TPTP. Talvez eu seja burro demais para usá-lo.
quant_dev 01 de

@quant_dev: Eu tive o mesmo problema, mas de alguma forma acidentalmente consegui configurá-lo repentinamente (eclipse reiniciado ou algo assim?). Mas quando eu o usei, acabou sendo quase inútil, era incrivelmente lento e com fome de recursos a ponto de matar eclipse. Algumas das visualizações mais úteis que foram mencionadas em várias referências que encontrei online também parecem não existir mais na versão atual que funciona com o eclipse 3.5. Então, no momento, é basicamente um grande BLOB de inutilidade.
x4u

1
Eclipse TPTP parece um produto maduro, mas é extremamente lento. Não consigo entender por que ...
Roalt,

4
Infelizmente, o TPTP já teve seu lançamento final (v4.7.2). Ele foi arquivado e não faz mais parte do lançamento simultâneo do Eclipse.
joelittlejohn

3

Se você estiver procurando por um criador de perfil de software livre simples e fácil de usar, pode dar uma olhada no Jip ( Java Interactive Profiler ). É publicado sob uma licença BSD. Achei muito útil para pequenos programas. Pelo menos, os resultados que ele fornece são muito mais fáceis de entender do que a saída do hprofs.


2

Java Mission Control , é de uso gratuito para desenvolvimento e se integra ao Eclipse. Ele tem sobrecarga muito baixa (<1%), uma vez que pega carona nos dados que a JVM está coletando de qualquer maneira.

É muito fácil de usar e também pode fornecer muitas informações que você normalmente não encontrará em outras ferramentas de perfil, por exemplo, perfil de latência, inspeção de memória online, estatísticas detalhadas de gc


1

Isso é rápido, sujo e muito eficaz: basta fazer alguns despejos de thread ou pausar o programa várias vezes e olhar os rastreamentos de pilha.


1

Considere https://github.com/jvm-profiling-tools/async-profiler de ponta

Este projeto é um gerador de perfil de amostragem de baixa sobrecarga para Java que não sofre de problema de polarização de ponto seguro . Ele apresenta APIs específicas do HotSpot para coletar rastreamentos de pilha e rastrear alocações de memória. O profiler funciona com OpenJDK, Oracle JDK e outros tempos de execução Java baseados em HotSpot JVM.

Também está embutido no IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .


Também há https://github.com/jvm-profiling-tools/honest-profiler semelhante .

A comparação entre async-profilere honest-profiler: https://github.com/jvm-profiling-tools/async-profiler/issues/77


Bom artigo ilustrado sobre async-profiler: hackernoon.com/…
Vadzim

0

O Netbeans IDE inclui um criador de perfil gratuito.

Além disso, se bem me lembro, a licença acadêmica do JProfiler é (relativamente) barata.


1
OP pediu "licença acadêmica não muito cara". Uma única licença acadêmica para JProfiler é de US $ 199
masher

1
Ele pediu algo que fosse de código aberto ou que tivesse uma licença acadêmica barata. Na minha opinião, US $ 199 é bastante barato para uma ferramenta que custa US $ 499 para uma licença normal.
Paul Morie

0

JVM Monitor é um criador de perfil Java integrado ao Eclipse para monitorar CPU, threads e uso de memória de aplicativos Java.

Se uma análise mais profunda for necessária, você pode usar outras ferramentas (por exemplo , TPTP , Memory Analyzer ) como uma próxima etapa.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.