Este documento discute monitoramento da JVM durante a execução de aplicações Javascript usando Nashorn. Ele apresenta ferramentas para monitorar desempenho e memória da JVM, como VisualVM e jmap, e discute como o Nashorn implementa Javascript na JVM usando invokedynamic.
2. @TheMarceloR
Sou de Fortaleza, Ceara
Boa experiencia com Java
Engenheiro de Suporte
Se aventurando na Irlanda
Possuo algumas certificacoes:
SCJP, LPIC, ITIL, etc.
3. Agenda
Monitorando a JVM (Performance & Benchmarking)
A nova „engine‟ de JS da JVM: Nashorn
Invokedynamic
Monitoramento
Javascript – analisando…
Thread Dumps
Memory Dumps
4. Monitorando a JVM
Porque nos fazemos isso?
Performance
Benchmarking
Ferramentas
Profilers
JRockit Mission Control
Visual VM
Utilitarios de linha de comando
jmap
jstack
6. Nashorn
Pequeno “disclaimer”: Eu nao sou um early
adopter!
Nashorn = „Rhinoceros„ em Alemao
100% implementado com ‟invokedynamic‟
Segue 100% da especificação ECMA-262 5.1
Mais rapido e mais „compliant‟ que RhinoJS
Alguns nomes para procurar no Google:
Jim Laskey (Multi-Lang lead)
Marcus Lagergren (Tech engineer)
Attila Szegedi (Nashorn developer)
8. Invokedynamic
Chamada normal
Opcode Uso
Invokestatic For static methods
Invokevirtual Para metodos nao-privados
Invokespecial Para instancia privada
Invokeinterface Para o recebedor que implementa a interface