Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Preview:

Citation preview

XdebugXdebug

Aluno: Diego Rangel da SilvaAluno: Diego Rangel da Silva

Profiler de Profiler de Sistema PHPSistema PHP

Análise Estática e Análise Estática e Análise Dinâmica Análise Dinâmica

(Performance)(Performance) Análise Estática: Análise Estática: não envolve a execuçãonão envolve a execução

propriamente dita do produto. Pode e deve propriamente dita do produto. Pode e deve ser aplicada em qualquer artefato ser aplicada em qualquer artefato intermediário. intermediário.

Ex.: Revisões técnicas, inspeção de código.Ex.: Revisões técnicas, inspeção de código.

Análise Dinâmica: Análise Dinâmica: envolve a execuçãoenvolve a execução do do produto. produto.

Ex.: Testes de Software, Simulação.Ex.: Testes de Software, Simulação.

Fonte: (Maldonado e Fabbri em (Rocha et al., 2001)).Fonte: (Maldonado e Fabbri em (Rocha et al., 2001)).

Porque Fazer Análise de Porque Fazer Análise de Performance(Desempenho)Performance(Desempenho)

??

A análise de performance é um teste feito A análise de performance é um teste feito no sistema para determinar e validar a sua no sistema para determinar e validar a sua velocidade, escalabilidade, e estabilidade sobre velocidade, escalabilidade, e estabilidade sobre execução.execução. (Scott Barber, 2007) (Scott Barber, 2007)

O que é a análise de performance?O que é a análise de performance?

Velocidade:Velocidade: a aplicação responde rápido? Tem a aplicação responde rápido? Tem alguma limitação?alguma limitação?

Escalabilidade:Escalabilidade: quantos usuários suporta? quantos usuários suporta? Quantos dados eu consigo armazenar?

Estabilidade:Estabilidade: vai falhar sobre alta carga? Se ocorrer vai falhar sobre alta carga? Se ocorrer um Downtime?um Downtime?

Categorias de Teste de Categorias de Teste de PerformancePerformance

Teste de PerformanceTeste de Performance

Teste de CargaTeste de Carga

Teste de StressTeste de Stress

FACCHINI, G. . Introdução ao Teste de Performance. 2009. (Conferência ou palestra).

Processo de Análise de Processo de Análise de DesempenhoDesempenho

FACCHINI, G. . Introdução ao Teste de Performance. 2009. (Conferência ou palestra).

Divisão do Processo em Divisão do Processo em SubcamadasSubcamadas

PagasPagas HP – LoadrunnerHP – Loadrunner IBM – Rational Performance TesterIBM – Rational Performance Tester Borland – SilkPerformerBorland – SilkPerformer

GratuitasGratuitas JMeterJMeter OpenSTAOpenSTA WebLoadWebLoad XdebugXdebug

FerramentasFerramentas

Profiling com XdebugProfiling com Xdebug O Xdebug é um plugin e sua instalação e O Xdebug é um plugin e sua instalação e

configuração é feita através de uma IDE compatível configuração é feita através de uma IDE compatível com a linguagem PHP. Exemplo: NetBeans, com a linguagem PHP. Exemplo: NetBeans, Eclipse, Zend Studio,etc.Eclipse, Zend Studio,etc.

Com ele você pode gerar arquivos cachegrind que Com ele você pode gerar arquivos cachegrind que contem informações da análise de desempenho.contem informações da análise de desempenho.

Você precisa de uma ferramenta para ler estes Você precisa de uma ferramenta para ler estes arquivos.arquivos.

Exemplos: WinCacheGrind, KCacheGrind, webgrind.Exemplos: WinCacheGrind, KCacheGrind, webgrind.

Esta ferramentas permitem você analisar o script Esta ferramentas permitem você analisar o script em execução.em execução.

WinCacheGrind(WindowsWinCacheGrind(Windows))

KCacheGrind KCacheGrind Screenshot(Linux)Screenshot(Linux)

Tempos de respostaTempos de resposta

Capacidade de crescimentoCapacidade de crescimento

Comparação entre Comparação entre hardware/software/configuraçãohardware/software/configuração

Relatórios indicam pontos de melhoriaRelatórios indicam pontos de melhoria

Resultados do TesteResultados do Teste

Qual hardware necessário?Qual hardware necessário? Qual a configuração necessária?Qual a configuração necessária? Qual sistema operacional?Qual sistema operacional? Qual banco?Qual banco? Podemos crescer? Quanto?Podemos crescer? Quanto? Qual o tempo de resposta?Qual o tempo de resposta? Quais são nossos gargalos?Quais são nossos gargalos?

Perguntas RespondidasPerguntas Respondidas

1º Artigo1º Artigo Autores: Yu. V. Shabatura, Cand. Sc. (Eng); I. Autores: Yu. V. Shabatura, Cand. Sc. (Eng); I.

V. Shtelmakh; M. Yu. ShabaturaV. Shtelmakh; M. Yu. Shabatura

Título: New Method For Improvement Título: New Method For Improvement Software Performance In Computing Software Performance In Computing Systems By Automatical Searching of Systems By Automatical Searching of «BOTTLENECKS»«BOTTLENECKS»

Periódico: Informational Technologies And Periódico: Informational Technologies And Computer EnginneringComputer Enginnering

Ano: 2009Ano: 2009

IntroduçãoIntrodução

O objetivo do autor é otimizar o tempo O objetivo do autor é otimizar o tempo de execução de um sistema resolvendo de execução de um sistema resolvendo os problemas de busca de gargalo de os problemas de busca de gargalo de forma mais eficiente.forma mais eficiente.

Na Engenharia existe um fenômeno Na Engenharia existe um fenômeno conhecido como gargalo, que limita a conhecido como gargalo, que limita a capacidade de produtividade de um capacidade de produtividade de um sistema devido a presença de alguns sistema devido a presença de alguns elementos.elementos.

Gráfico de chamadasGráfico de chamadas

Esquema de SistemaEsquema de Sistema

Análise de ResultadosAnálise de Resultados Para realizar a otimização da busca por Para realizar a otimização da busca por

gargalos. Os resultados encontrados na gargalos. Os resultados encontrados na análise são filtrados.análise são filtrados.

São retirados as chamadas a função que atingiram um tempo menor que o limite determinado abaixo:

ResultadoResultado

Conclusão do ArtigoConclusão do Artigo

A estruturação e suporte a algoritmo para A estruturação e suporte a algoritmo para construção de sistema automatizado teve construção de sistema automatizado teve como objetivo otimizar a eficiência de como objetivo otimizar a eficiência de sistemas de computação através da sistemas de computação através da redução da influência de botttlenecks.redução da influência de botttlenecks.

Como resultado do estudo experimental, o Como resultado do estudo experimental, o sistema mostrou a habilidade de visualizar sistema mostrou a habilidade de visualizar o processo de execução do programa e o processo de execução do programa e otimizar a sua performance.otimizar a sua performance.

Teste de Desempenho é importante para:Teste de Desempenho é importante para: Identificar utilização do sistemaIdentificar utilização do sistema Verificar tempos de respostaVerificar tempos de resposta Aperfeiçoar o ambiente/programaAperfeiçoar o ambiente/programa

Existem diversas ferramentas realizar Existem diversas ferramentas realizar esta análise, uma delas é a Xdebug.esta análise, uma delas é a Xdebug.

A experiência do usuário (cliente) está A experiência do usuário (cliente) está intimamente ligada com o teste de intimamente ligada com o teste de desempenhodesempenho

ConclusãoConclusão

ReferênciasReferências Patterns & Practices -Performance Testing Guidance Patterns & Practices -Performance Testing Guidance

for Web Applications (Autor: Scott Barber)for Web Applications (Autor: Scott Barber)

FACCHINI, G. . Introdução ao Teste de Performance. FACCHINI, G. . Introdução ao Teste de Performance. 2009. (Apresentação de Trabalho/Conferência ou 2009. (Apresentação de Trabalho/Conferência ou palestra).palestra).

Yu. V. Shabatura, Cand. Sc. Yu. V. Shabatura, Cand. Sc. (Eng); I. V. Shtelmakh; M. (Eng); I. V. Shtelmakh; M. Yu. Shabatura. 2009. New Method For Improvement Yu. Shabatura. 2009. New Method For Improvement Software Performance In Computing Systems By Software Performance In Computing Systems By Automatical Searching of «BOTTLENECKS» Automatical Searching of «BOTTLENECKS» Informational Technologies And Computer Informational Technologies And Computer EnginneringEnginnering

Molyneaux Molyneaux, I. (2009). The Art of Application Molyneaux Molyneaux, I. (2009). The Art of Application Performance Testing: Help for Programmers and Performance Testing: Help for Programmers and Quality Assurance. Quality Assurance. O’ ’Reilly Media. 1a edição.O’ ’Reilly Media. 1a edição.

EngajamentoEngajamento

• Para que testar?

• Quantos usuários?

• Qual SLA?

• Quais as transações críticas?

Voltar

Plano de PerfomancePlano de Perfomance

• Baseado na atividade anterior, define-se os tipos de testes que ocorrerão

• Aprofundamento dos requisitos

• Já existem dados de produção que podem ser utilizados como estimativas?

Voltar

Schedule(Programação)Schedule(Programação)

Define-se os tempos de cada atividade subseqüente

Voltar

Preparação do CódigoPreparação do Código

• Scripts automatizados

• Código que roda consultas em banco, dispara processos

Voltar

Preparação de DadosPreparação de Dados

• É necessária a criação de dados?

• De que tipo?

• Como criar?

• Criação antecede o teste...

Voltar

Preparação do Processo de Preparação do Processo de LimpezaLimpeza

• Dados são invalidados depois de utilizados?

• Precisa limpar depois de cada execução?

• Preencher valores ausentes?

Voltar

Preparação do AmbientePreparação do Ambiente

• Em que hardware?

• Configuração de software

• Configuração de rede

• Devemos ter um ambiente similar (comparável) ao de produção

Voltar

ExecuçãoExecução

• Os testes planejados são executados

• São identificados os gargalos do sistema (DB? SO? Web? App?)

• Se os SLA não são atingidos ou o tempo de resposta é ruim ou inaceitável para os usuários, corrige-se os gargalos

• Re-execução e correção (tunning) do sistemasão feitos até atingir o resultado esperado

Voltar

RelatóriosRelatórios

• Relatórios de utilização esperada de recursos

• Tempos de resposta dos usuários

• Principais melhorias

Voltar

Monitoramento de Monitoramento de ProduçãoProdução

• Identificar se o comportamento de produçãoestá dentro do cenário previsto no teste

• O tempo de resposta está aceitável?

• Existe alguma camada que está sobre-carregada?

Voltar

Fechamento do ProcessoFechamento do Processo

Se não existem problemas em produção, finaliza-se o processo de performance

Voltar