Diferença entre amostragem e criação de perfil no jVisualVM


158

O VisualVM possui duas guias separadas para amostragem e criação de perfil. Qual é a diferença entre amostragem e criação de perfil no VisualVM?

Respostas:


182

Samplingsignifica pegar muitos despejos de threads e analisar rastreamentos de pilha. Isso geralmente é mais rápido, não requer alterações de tempo de execução no seu bytecode (que pode quebrá-lo), mas também é menos preciso.

Profilingsignifica instrumentar suas classes e métodos, para que eles "relatem" sempre que executados. Isso é mais preciso, pois conta todas as invocações do método instrumentado, não apenas aquelas capturadas quando o despejo é feito. No entanto, a instrumentação significa que o bytecode de suas classes é alterado e isso pode interromper seu programa. Na verdade, por esse motivo, o uso de perfis em grandes servidores de aplicativos (como JBoss ou WebLogic) geralmente faz com que tudo morra ou pare.


2
Isso significaria que a criação de perfil é mais precisa que a amostragem, mas seriam necessários mais recursos?
Parag

10
Descobri que a amostragem é mais do que precisa o suficiente toda vez que a uso para identificar os métodos com desempenho ruim. Eu pessoalmente nunca uso perfis.
Marquez
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.