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.

Hamza Yerlikaya
fonte
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/

Chi
fonte
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
LB40
fonte
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.

Peter Lawrey
fonte
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()
MRalwasser
fonte
4

Eclipse TPTP

Este é um artigo sobre Java Application Profiling usando TPTP e um tutorial Profiling J2SE 5.0 com base em aplicativos usando Eclipse TPTP .

lothar
fonte
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.

Martin Dirichs
fonte
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

Kire Haglin
fonte
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.

Mike Dunlavey
fonte
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

Vadzim
fonte
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.

Paul Morie
fonte
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.

Barun
fonte