Esta página é uma demonstração ao vivo — sem login — do recurso mais raro de um analisador de thread dumps: a comparação antes/depois de um fix. O bloco acima já mostra o essencial: um serviço Java que estava em health score 28 e, depois de uma correção, foi para 92. Abaixo você explora o diff completo que gerou esse número.
O cenário: pool esgotado + deadlock
O par de dumps é de um pedido-service típico em Spring Boot com Tomcat e HikariCP. No dump de antes, o serviço está travado por dois problemas simultâneos:
- Pool de conexões esgotado. As cinco threads
http-nio-8080-exec-*estão BLOCKED/WAITING dentro deHikariPool.getConnection, parkadas além doconnectionTimeout— acumulando milhares de ms de CPU sem progredir. - Deadlock.
pedido-tx-workereestoque-tx-workerentraram em espera circular por dois monitores adquiridos em ordem invertida (CRITICAL).
No dump de depois — mesmo serviço, após limitar o pool e impor uma ordem global de locks — os dois problemas desaparecem: as threads do pool voltam a RUNNABLE/TIMED_WAITING e o deadlock some. Nada de novo aparece. É a assinatura de um fix que pegou.
Como ler o delta
A leitura vai do topo para baixo, do resumo ao detalhe:
- Health score. 28 → 92. O número único que responde "melhorou ou piorou?" antes de qualquer leitura de stack.
- Diagnóstico. O veredito verde e os drivers ("problema resolvido") resumem, em uma linha, o que puxou o score para cima.
- Contadores e problemas. BLOCKED 5 → 0, os problemas CRITICAL que sumiram, e as threads que mais liberaram CPU.
- Diff thread a thread. Cada thread pareada, com a transição de estado (ex:
BLOCKED → RUNNABLE) e o delta de CPU. Filtre por categoria, por mudança de estado ou por CPU liberada.
Por que comparar dois dumps
Um dump isolado responde "o que está acontecendo agora?". Comparar dois responde a pergunta que realmente importa depois de uma mudança: "o que mudou?". É o que você quer saber ao validar um hotfix em produção, ao investigar uma regressão entre dois deploys, ou ao entender por que a latência subiu entre o pico das 14h e o das 15h. Ler dois dumps grandes em paralelo, à mão, é lento e propenso a erro; o diff mostra só o delta.
Como o ThreadMine compara
O ThreadMine pareia as threads dos dois dumps por nome e calcula, para cada uma, as mudanças de estado, de locks (esperado/detido), de CPU e de stack (via hash dos frames do topo). Agrega os contadores por estado, cruza os problemas detectados (o que apareceu em B, o que sumiu de A, o que mudou de severidade) e deriva um veredito com os principais drivers da mudança. Nos planos com IA, o Vein ainda escreve um parecer sobre a causa provável da diferença.
O diff desta demo foi calculado exatamente pelo mesmo motor — a diferença é que aqui os dois dumps são um exemplo fixo, servido estático. Com uma conta gratuita você faz o mesmo com os seus.
Perguntas frequentes
O que significa comparar dois thread dumps?
É pegar um dump de antes de uma mudança (um fix, um deploy, um pico de carga) e um de depois, e cruzar thread a thread: quais mudaram de estado, quais apareceram ou sumiram, quanto de CPU cada uma passou a consumir e quais problemas (deadlock, pool esgotado, contention) apareceram ou foram resolvidos. Em vez de ler dois dumps de 900 linhas em paralelo, você vê só o que mudou — e um health score de cada lado para saber, num número, se a situação melhorou ou piorou.
Como sei se um fix realmente resolveu o problema?
Comparando o dump de antes com o de depois. No exemplo desta página, o serviço tinha health score 28 (deadlock CRITICAL + pool HikariCP esgotado, cinco threads http-nio bloqueadas aguardando conexão) e, após limitar o pool e impor ordem global de locks, subiu para 92: nenhum problema bloqueante, as threads do pool liberaram milhares de milissegundos de CPU e voltaram a RUNNABLE/TIMED_WAITING. O delta de +64 no health score e a lista de problemas resolvidos são a evidência objetiva de que o fix pegou.
Preciso de conta para comparar dumps?
Esta demo é pública e não pede login — é um par fixo de dumps de exemplo. Para comparar os SEUS próprios dumps (com diff de stack por thread e diagnóstico da IA Vein sobre a mudança), aí sim é preciso uma conta gratuita: você sobe os dois dumps e o ThreadMine calcula o diff completo.
Comparação de dumps é um recurso pago?
Ferramentas tradicionais escondem a comparação atrás do plano Enterprise. No ThreadMine a comparação lado a lado está disponível já no plano gratuito; o que os planos pagos adicionam é a camada de IA (Vein) explicando a causa da mudança e o histórico de comparações do workspace.
Compare os seus próprios dumps
Suba o dump de antes e o de depois. O ThreadMine mostra o que mudou — estado, locks, CPU e problemas — em segundos.