Profiling: Como Diagnosticar Problemas de Performance Haroldo R. J. de Macêdo
Desenvolvimento do Software <ul><li>Ciclo de Vida do Desenvolvimento </li></ul><ul><li>Análise de Requisitos </li></ul><ul...
Características do Software <ul><li>Confiabilidade </li></ul><ul><li>Eficiência </li></ul><ul><li>Portabilidade </li></ul>...
Problemas de Software <ul><li>Bugs </li></ul><ul><li>Não Conformidade </li></ul><ul><li>Memory Leak </li></ul><ul><li>Requ...
Validação do Software <ul><li>Teste de Caixa Preta </li></ul><ul><li>Teste de Caixa Branca </li></ul><ul><li>Testes Não-Fu...
Software para o Usuário Final <ul><li>Bonitinho </li></ul><ul><li>Não Trava </li></ul><ul><li>Rápido </li></ul>
Profiling – Definição <ul><li>Wikipedia </li></ul><ul><ul><li>Análise de performance </li></ul></ul><ul><ul><li>Investigaç...
Profiling com JInsight <ul><li>Software de Laboratório da IBM </li></ul><ul><ul><li>Não distribuído aos clientes </li></ul...
Profiling – Duas Fases <ul><li>Agente JInsight </li></ul><ul><ul><li>Coleta dos dados </li></ul></ul><ul><ul><li>Roda no s...
Janela Principal no Visualizador
O Que Se Vê no Visualizador <ul><li>Um retrato da JVM </li></ul><ul><li>Suas Threads </li></ul><ul><li>Linha do tempo </li...
Threads no JInsight <ul><li>Linhas Verticais </li></ul><ul><li>Nome no topo da linha </li></ul><ul><li>Threads WebSphere <...
Threads WebSphere
Olhando a Execução do Código Tempo de Execução de Objetos Pilha de Chamada
Identificando Eventual Problema
Procurando por Detalhes
Acessando o Banco de Dados
Mais Detalhes
E Mais Detalhes Ainda
Métodos Repetidos
Método de Acesso ao B.D.
Vendo com Menos Detalhes
Na JVM
Como Identificar Problemas de Performance <ul><li>Procurar por padrões </li></ul><ul><li>Execução de métodos muito demorad...
Caso de Uso: Valida Usuário no LDAP
Validação Dupla do Perfil do Usuário
Caso de Uso XYZ
Caso de Uso XYZ
Coleta com Ferramenta de Profiling – Característica <ul><li>Uma funcionalidade testada por vez </li></ul><ul><ul><li>Cada ...
Profiling – Resumo  <ul><li>Busca encontrar problemas de performance </li></ul><ul><li>Coleta informações durante execução...
Referência <ul><li>Informação on-line </li></ul><ul><ul><li>http://www.research.ibm.com/jinsight/docs/ </li></ul></ul><ul>...
Profiling: Como Diagnosticar Problemas de Performance Haroldo R. J. de Macêdo
Próximos SlideShares
Carregando em…5
×

Profiling - IMES.java - Haroldo Macedo

1.615 visualizações

Publicada em

Palestra de Haroldo Macedo para o evento IMES.java

Publicada em: Negócios
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.615
No SlideShare
0
A partir de incorporações
0
Número de incorporações
169
Ações
Compartilhamentos
0
Downloads
14
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Profiling - IMES.java - Haroldo Macedo

    1. 1. Profiling: Como Diagnosticar Problemas de Performance Haroldo R. J. de Macêdo
    2. 2. Desenvolvimento do Software <ul><li>Ciclo de Vida do Desenvolvimento </li></ul><ul><li>Análise de Requisitos </li></ul><ul><li>Desenvolvimento Orientado a Objetos </li></ul><ul><li>Frameworks, muitos frameworks </li></ul><ul><li>Tecnologia Java </li></ul><ul><li>DB2, Oracle, MySQL </li></ul><ul><li>Linux, Windows, AIX, Z/OS </li></ul>
    3. 3. Características do Software <ul><li>Confiabilidade </li></ul><ul><li>Eficiência </li></ul><ul><li>Portabilidade </li></ul><ul><li>Compatibilidade </li></ul><ul><li>Usabilidade </li></ul><ul><li>Escalabilidade </li></ul><ul><li>Alta Disponibilidade </li></ul><ul><li>Robustez </li></ul>
    4. 4. Problemas de Software <ul><li>Bugs </li></ul><ul><li>Não Conformidade </li></ul><ul><li>Memory Leak </li></ul><ul><li>Requisitos Funcionais </li></ul><ul><li>Requisitos Não Funcionais </li></ul>
    5. 5. Validação do Software <ul><li>Teste de Caixa Preta </li></ul><ul><li>Teste de Caixa Branca </li></ul><ul><li>Testes Não-Funcionais </li></ul><ul><li>Testes Unitários </li></ul><ul><li>Teste de Integração </li></ul><ul><li>Teste de Sistema </li></ul><ul><li>Teste de Regressão </li></ul><ul><li>Versão Alfa </li></ul><ul><li>Versão Beta </li></ul>
    6. 6. Software para o Usuário Final <ul><li>Bonitinho </li></ul><ul><li>Não Trava </li></ul><ul><li>Rápido </li></ul>
    7. 7. Profiling – Definição <ul><li>Wikipedia </li></ul><ul><ul><li>Análise de performance </li></ul></ul><ul><ul><li>Investigação do comportamento do programa usando informação obtida durante sua execução </li></ul></ul>
    8. 8. Profiling com JInsight <ul><li>Software de Laboratório da IBM </li></ul><ul><ul><li>Não distribuído aos clientes </li></ul></ul><ul><li>IBM WebSphere </li></ul><ul><ul><li>Desenvolvido para rodar no WebSphere </li></ul></ul><ul><li>IBM Rational Application Developer </li></ul><ul><ul><li>Evoluiu para o profiling do RAD </li></ul></ul><ul><li>Leve </li></ul><ul><li>Fácil de Usar </li></ul>
    9. 9. Profiling – Duas Fases <ul><li>Agente JInsight </li></ul><ul><ul><li>Coleta dos dados </li></ul></ul><ul><ul><li>Roda no servidor de aplicações </li></ul></ul><ul><li>Uso do Visualizador do JInsight </li></ul><ul><ul><li>Analise dos Dados </li></ul></ul>
    10. 10. Janela Principal no Visualizador
    11. 11. O Que Se Vê no Visualizador <ul><li>Um retrato da JVM </li></ul><ul><li>Suas Threads </li></ul><ul><li>Linha do tempo </li></ul><ul><li>O stack de chamada de métodos </li></ul>
    12. 12. Threads no JInsight <ul><li>Linhas Verticais </li></ul><ul><li>Nome no topo da linha </li></ul><ul><li>Threads WebSphere </li></ul><ul><li>Linha de tempo </li></ul>
    13. 13. Threads WebSphere
    14. 14. Olhando a Execução do Código Tempo de Execução de Objetos Pilha de Chamada
    15. 15. Identificando Eventual Problema
    16. 16. Procurando por Detalhes
    17. 17. Acessando o Banco de Dados
    18. 18. Mais Detalhes
    19. 19. E Mais Detalhes Ainda
    20. 20. Métodos Repetidos
    21. 21. Método de Acesso ao B.D.
    22. 22. Vendo com Menos Detalhes
    23. 23. Na JVM
    24. 24. Como Identificar Problemas de Performance <ul><li>Procurar por padrões </li></ul><ul><li>Execução de métodos muito demoradas </li></ul><ul><li>Excesso de chamada de métodos </li></ul>
    25. 25. Caso de Uso: Valida Usuário no LDAP
    26. 26. Validação Dupla do Perfil do Usuário
    27. 27. Caso de Uso XYZ
    28. 28. Caso de Uso XYZ
    29. 29. Coleta com Ferramenta de Profiling – Característica <ul><li>Uma funcionalidade testada por vez </li></ul><ul><ul><li>Cada análise produz centenas de milhares de eventos </li></ul></ul><ul><li>Um único usuário trabalhando </li></ul><ul><ul><li>Várias thread para analisar dificulta o trabalho </li></ul></ul>
    30. 30. Profiling – Resumo <ul><li>Busca encontrar problemas de performance </li></ul><ul><li>Coleta informações durante execução </li></ul><ul><li>Identifica padrões </li></ul><ul><li>Analisa em detalhe </li></ul><ul><li>Relata o encontrado </li></ul>
    31. 31. Referência <ul><li>Informação on-line </li></ul><ul><ul><li>http://www.research.ibm.com/jinsight/docs/ </li></ul></ul><ul><li>hmacedo@br.ibm.com </li></ul>
    32. 32. Profiling: Como Diagnosticar Problemas de Performance Haroldo R. J. de Macêdo

    ×