You are on page 1of 15

Anlise de desempenho das bibliotecas ADOdb e PDO

Cinara Zambelli1, Eduardo Pretz1


1

Especializao em Teste e Garantia em Qualidade de Software Feevale Campus II - RS-239, 2755 93.352-000 Novo Hamburgo RS Brasil
cinara.zambelli@gmail.com, epretz@feevale.br

Abstract. This works present a study about web application and performance testing. This paper has as main objective to present a performance analysis of the ADOdb and PDO library based on the calculus functionality of the assets depreciation to a web system. Resumo. Este trabalho apresenta um estudo sobre aplicaes web e testes de desempenho. Este documento tem como principal objetivo apresentar uma anlise de desempenho das bibliotecas ADOdb e PDO baseada na funcionalidade do clculo de depreciao de bens para um sistema web.

1. Introduo
Conforme as tecnologias evoluem, as estruturas de aplicaes web vm cada vez mais se tornando complexas [Lu, 2006]. Estas evolues so acompanhadas por exigncias de qualidade, o que fora as aplicaes web a suportarem o acesso concorrente de vrios usurios na aplicao e a manter um desempenho adequado para o cliente. O diferencial dos softwares no mercado est na qualidade do produto oferecida para o cliente. Para garantir a qualidade destes sistemas, o teste de desempenho um procedimento requisitado, o qual um adicional para os testes funcionais[Jiang, 2008]. Testes de desempenho, em geral, referem-se ao comportamento do sistema sob uma alta carga de trabalho ou uma modificao de software ou hardware no sistema. Este tipo de teste em aplicaes web pode ser especificado atravs de simulaes utilizando ferramentas para auxiliar na avaliao do desempenho do sistema [Lutteroth, 2008]. Este trabalho tem por objetivo realizar um estudo de caso baseado em uma aplicao web, verificar as possibilidades de alterao do sistema para realizar testes de desempenho. Outra possibilidade de avaliao de desempenho tambm seria a avaliao de complexidade de algoritmo e sua possvel minimizao da complexidade de algoritmo para realizar os testes de desempenho. Com relao organizao e contedo deste texto, o documento est estruturado da seguinte forma: a seo 2 aborda os sistemas web. O teste de desempenho abordado na seo 3. A seo 4 mostra a metodologia de pesquisa deste trabalho. Na seo 5 apresentado o estudo de caso deste trabalho e seus resultados. Na seo 6 apresentado alguns trabalhos relacionados e na seo 7 apresentada as consideraes finais, limitaes do trabalho e trabalhos futuros.

2. Sistemas web
Os sistemas direcionados para empresas cada vez mais esto convergindo para aplicaes Web em virtude de sua facilidade de acesso e portabilidade. Com a crescente demanda, estes sistemas precisam funcionar com processamento concorrente, com browser (sistema para acessar a Internet) e sistemas operacionais diferentes. Conforme Draheim (2006), a exposio destes sistemas para os usurios finais, especialmente clientes, necessita cada vez mais que estas aplicaes sejam rpidas e confiveis. Com as mudanas e melhorias contnuas nas linguagens de desenvolvimento de software, os sistemas web passam constantemente por evolues e isto um desafio para a engenharia de software [Draheim, 2006]. Para melhorar o resultado final destes sistemas para o cliente muito comum utilizar-se de um guia de boas prticas de desenvolvimento. O aumento da busca pela qualidade do produto fez com que as empresas investissem em melhorar seus sistemas, de forma a utilizar os testes para garantir a funcionalidade e qualidade dos seus sistemas antes da entrega. Conforme a finalidade do sistema ou necessidade do cliente utilizado testes especficos.

3. Teste de desempenho
O objetivo dos testes funcionais verificar o funcionamento do sistema conforme foi proposto, j os testes de desempenho demonstram se o sistema consegue executar uma tarefa com determinada carga de trabalho para que o cliente tenha uma avaliao positiva sobre o sistema [Molinari, 2009]. O teste de desempenho uma prtica importante em aplicaes web, cujo objetivo a demanda do sistema visando a otimizao dos diferentes componentes ou mudanas na aplicao [Draheim, 2006]. Teste de desempenho um tipo de teste que pretende determinar a capacidade de resposta (throughput), confiabilidade e/ou escalabilidade de um sistema sob uma carga de trabalho. Este tipo de teste comumente utilizado para encontrar a origem de problemas de desempenho, avaliar a disponibilidade de produo, comparar as caractersticas de vrios sistemas ou configuraes do sistema, oferecer suporte ao tuning e encontrar nveis de throughput [Meier, 2007]. A avaliao de desempenho de um sistema pode demonstrar qual a capacidade mxima de carga da aplicao ou onde existe um gargalo no sistema. Molinari (2009) descreve em seu livro que se o sistema no atinge as necessidades especificadas ou um comportamento desejvel, a atitude do cliente afirmar que o sistema no funciona. Com isto, a imagem da empresa construtora do software ou da empresa que testou a aplicao impactada em funo de um mau teste de desempenho. Para ajudar na avaliao de desempenho de um sistema, existem algumas ferramentas de teste, algumas destas com muitos recursos, porm muito caras. Por outro lado existem as ferramentas gratuitas que vem ganhando o mercado por oferecer alguns recursos de captura e anlise, compatveis com linguagens e banco de dados diferentes. O principal objetivo deste tipo de teste simular antecipadamente a capacidade de carga que o sistema poder sofrer quando as modificaes forem disponibilizadas [Draheim, 2006]. As ferramentas de teste de desempenho utilizam usurios virtuais (VU virtual user) para simular o cliente executando uma tarefa no sistema. Estes usurios

virtuais tentam simular o comportamento do cliente, utilizando um parmetro de configurao da ferramenta chamado think time, ou seja, o tempo que o cliente espera ou leva para solicitar outra ao do sistema, por exemplo, acionar um comando. Cada vez que realizada uma modificao no sistema ou ambiente de teste de desempenho conclui-se um ciclo de teste, os quais tentam simular a aplicao sob condies de carga reais [Draheim, 2006]. Ao realizar um teste de desempenho necessrio estabelecer um baseline para anlise e comparao com testes futuros, determinar as metas e requisitos do teste, coletar os dados e realizar uma avaliao dos resultados. Estes resultados podem ajudar a estimar os requisitos de configurao de hardware ou configurao do sistema para suportar a aplicao quando for dada a partida para operar em produo [Meier, 2007].

4. Metodologia de pesquisa
Este trabalho foi iniciado com o estudo sobre sistemas web e teste de desempenho. Aps um conhecimento geral sobre aplicaes web, notou-se que para a maioria das publicaes o desempenho de um sistema com uma carga alta de trabalho uma garantia de qualidade. Por esta razo, resolveu-se realizar um estudo de caso neste assunto, estudando uma aplicao web e realizando uma anlise de desempenho. Procurou-se estudar um projeto pequeno de uma empresa que no havia realizado investimentos em teste de desempenho. Por questes de confidencialidade utilizou-se um nome fictcio para a empresa intitulado de Z. Aps concesso da empresa em realizar o estudo foi realizada uma anlise do sistema atravs de testes funcionais para identificar pontos crticos. Durante os testes percebeu-se trs pontos crticos: a funcionalidade de importao de tabela (utilizada pelo administrador do sistema um nica vez ao importar os dados antigos do cliente), a gerao de relatrios e o clculo de depreciao de bens. Numa avaliao em conjunto com a empresa Z destes pontos crticos, ficou estabelecido a priorizao para avaliar o desempenho do clculo de depreciao bens, devido ao recente crescimento de clientes desta empresa. Procurou-se realizar uma anlise em conjunto com a empresa para verificar qual ponto de mudana no sistema seria alterado para verificar uma possvel melhoria no desempenho. Atravs de uma pesquisa realizada em conjunto com a empresa, identificou-se que a biblioteca PDO poderia ser mais rpida do que a biblioteca ADOdb, pois a PDO uma biblioteca nativa compilada do PHP e no carregada em tempo de execuo [Benchmarking, 2009]. A outra possibilidade de verificao de desempenho seria a anlise da complexidade de algoritmo da funcionalidade escolhida e sua possvel minimizao de complexidade, porm, isto seria outra linha de pesquisa e ficar fora do escopo deste trabalho. Foi realizada uma pesquisa em busca de algum artigo que tivesse utilizado as bibliotecas ADOdb e a PDO em seus estudos, apesar de procurar em instituies renomadas como IEEE (Institute of Electrical and Electronics Engineers), no foi encontrado nenhum artigo com a comparao destas bibliotecas. Este foi um dos motivadores para a realizao deste trabalho e contribuio para o meio acadmico.

Desta forma, optou-se em realizar a anlise de desempenho das bibliotecas ADOdb e PDO baseada na funcionalidade do clculo de depreciao de bens da empresa Z. Para elaborao e execuo dos testes de desempenho, utilizou-se as atividades descritas por Meier (2007): Atividade 1 - Identificar o ambiente de teste - identificar o ambiente fsico de teste e o ambiente de produo tanto quanto as ferramentas e recursos da equipe de teste. O ambiente fsico inclui hardware, software e configuraes de rede; Atividade 2 - Identificar os critrios de aceitao de desempenho - identificar o "response time", throughput, e recursos utilizando metas e restries; Atividade 3 - Plano e projeto de teste - identificar cenrios, determinar variveis representativas e como simular estas variveis, definir os dados de teste e estabelecer mtricas para serem coletadas; Atividade 4 - Configurar o ambiente de teste - preparar o ambiente de teste, ferramentas e recursos necessrios para executar os testes; Atividade 5 - Implementao do projeto de teste - desenvolver os testes de desempenho de acordo com o projeto; Atividade 6 - Execuo do teste - executar e monitorar os testes. Validar os testes, os dados do teste e a coleta dos resultados; Atividade 7 - Analisar os resultados - consolidar, analisar os dados e compartilhar os resultados. Aps definir as atividades para a realizao do teste de desempenho, procurou-se definir a ferramenta que ser utilizada para a simulao da carga e captura dos dados. 4.1. Ferramenta Para realizar o teste de desempenho, optou-se por verificar ferramentas gratuitas. Atravs de uma pesquisa desenvolvida por Ramachandran (2008) que avaliou o OpenSTA, o Apache JMETER e o WebLoad como solues de ferramentas para teste de desempenho, conclui-se que a ferramenta WebLoad seria a melhor opo por suportar os protocolos e linguagem de desenvolvimento do sistema da empresa Z. A escolha do WebLoad baseou-se nos protocolos aceitos pela ferramenta, a facilidade da entrada de parmetros, a execuo com usurios virtuais, o monitoramento da medio da execuo dos testes e os relatrios [Ramachandran, 2008]. A ferramenta WebLoad que ser utilizada para os testes est dividida em duas partes: WebLoad IDE e WebLoad Console.

5. Estudo de caso
Conforme a crescente exigncia por qualidade de software no mercado, algumas empresas esto investindo em testes funcionais, mas muito poucas empresas investem em teste de desempenho, principalmente empresas pequenas ou que esto h pouco tempo no mercado.

Para a realizao deste estudo, procurou-se uma empresa que tivesse um sistema lanado h pouco tempo no mercado e que tambm estivesse disponvel para realizar testes de desempenho para este trabalho. A empresa escolhida para o estudo de caso foi a empresa Z, a qual de pequeno porte, conforme avaliao de Schulmeyer (2008). A empresa tem menos de um ano no mercado, conta com a colaborao de cinco pessoas e possui recursos financeiros restritos. O sistema foi desenvolvido com a linguagem PHP (verso 5.2.6) [PHP, 2009], servidor Apache HTTP Server (verso 2.2.9) [APACHE, 2009], banco de dados MySQL Server (verso 5.0.41) [MYSQL, 2009] e como ambiente de desenvolvimento a ferramenta Zend Framework (verso 5.1.0) [ZEND, 2009]. Um analista de sistema verificou que o relacionamento das tabelas estava consistente bem como as chaves primrias. Apesar do tipo MyISAM ter um desempenho melhor no armazenamento no banco de dados, neste sistema foi utilizado o tipo InnoDB do MySQL que garante a integridade referencial dos dados, necessidade do sistema. O sistema realiza as conexes com o banco de dados atravs da biblioteca ADOdb [ADODB, 2009]. A elaborao do teste de desempenho para este estudo de caso est dividida em algumas atividades, descrito nas prximas sees. 5.1. Ambiente e desenvolvimento dos testes Nesta seo ser abordada a identificao e configurao do ambiente de teste e o seu desenvolvimento. Estas atividades foram baseadas no conceito das atividades 1, 4 e 5 citadas na seo 4. 5.1.1. Ambiente de teste O sistema da empresa Z acessado atravs de browser por uma rede local ou pela Internet, contudo, durante o acesso a Internet comum ocorrer atrasos (delays) em aplicaes web. Por este motivo o ambiente de teste ser realizado em um computador local sem acesso a Internet, pois pretende-se avaliar apenas o tempo de processamento do clculo sem interferncias externas. O ambiente de teste ser composto por hardware e software conforme descritos na tabela 1.
Tabela 1 Ambiente de teste.

Nome Objetivo Sistema operacional CPU Memria Aplicativos instalados para prover a aplicao web Aplicativos instalados para gerar e monitorar os testes

Computador de teste Gerador e monitor de carga e Servidor da aplicao web Windows Vista Service Pack 1 Intel Dual Core CPU T2390 1.86GHz 2 GB PHP 5.2.6; Apache 2.2.9; MySQL 5.0.41; Zend Framework 5.1.0; FireFox 2.0 WebLoad IDE e Console verso 8.1; BrOffice; FireFox 2.0

Na realizao do teste de desempenho sero desabilitados servios do tipo antivrus e firewall para que no interfiram na carga ou processamento de memria ou CPU.

5.1.2. Desenvolvimento dos testes Com o WebLoad IDE possvel realizar o desenvolvimento dos scripts de testes de desempenho. Esta ferramenta permite a gravao de aes do usurio atravs do acesso ao browser, ao final da gravao gerando um cdigo JavaScript. Neste cdigo deve-se informar a URL de acesso e efetuar as aes desejadas na aplicao. A execuo dos scripts com os usurios virtuais e a coleta das medies realizado pelo WebLoad Console, o qual possibilita a visualizao da execuo e os dados capturados. 5.2. Fluxo, cenrios e ciclos da avaliao Nesta seo ser abordado o fluxo de execuo do teste, os cenrios e os ciclos de avaliao dos testes, descritos nas prximas sub-sees. Estas atividades foram baseadas no conceito das atividades 2 e 3 citadas na seo 4. 5.2.1. Fluxo O fluxo do teste que ser avaliado consiste em: acessar a URL do sistema, efetuar login com sucesso no sistema (utilizando usurio e senha vlido), acessar o menu de Processos, escolher a opo Clculo de Depreciao por Perodo, selecionar o estabelecimento (filial), pressionar o boto Gravar Registro, aguardar o clculo ser efetuado. O perodo para o clculo deve estar previamente configurado, bem como um estabelecimento cadastrado. Ao pressionar o boto Gravar Registro, o sistema efetua o clculo de todos os itens do estabelecimento para o perodo selecionado, retornando uma mensagem de sucesso. 5.2.2. Cenrios Os cenrios elaborados tm por objetivo final a anlise dos resultados gerados atravs da execuo dos testes realizados com a ferramenta WebLoad. Na tabela 2 pode-se visualizar os cenrios que sero utilizados para os testes.
Tabela 2 - Cenrios.

Nome do Cenrio 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

Quantidade de itens Quantidade total de itens cadastrados em cada empresa calculado 1.000 8.000 1.000 16.000 1.000 24.000 1.000 32.000 1.000 40.000 20.000 160.000 20.000 320.000 20.000 480.000 20.000 640.000 20.000 800.000 40.000 320.000 40.000 640.000 40.000 960.000 40.000 1.280.000 40.000 1.600.000

Quantidade de usurios 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

16 21 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

60.000 80.000 1.000 1.000 1.000 10.000 10.000 10.000 20.000 20.000 20.000 30.000 30.000 30.000 40.000 40.000 40.000

480.000 640.000 1.000 2.000 3.000 10.000 20.000 30.000 20.000 40.000 60.000 30.000 60.000 90.000 40.000 80.000 120.000

1 1 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

Estes cenrios foram elaborados baseados em dados reais de um cliente da empresa Z que possui aproximadamente 90.000 itens em seu cadastro. Do cenrio 1 ao 21 foi realizado o clculo para oito meses e, do cenrio 26 ao 40 o clculo realizado foi de 1 ms. 5.2.3. Ciclos de avaliao Conforme Meier (2007) necessrio criar uma baseline para haver uma comparao futura com os prximos ciclos de teste. A baseline pode ser as diferentes camadas da aplicao, incluindo a base de dados, web services, capacidade de hardware, upgrade de verso do software, entre outros. O foco deste trabalho est na camada da aplicao, especificamente na biblioteca utilizada pelo sistema. Neste trabalho sero utilizados dois ciclos de teste. O ciclo I ser o baseline do sistema, um teste da aplicao web sem alteraes da configurao atual, onde poder ser analisado como funciona atualmente o tempo de processamento do clculo de depreciao de bens. Aps, ser realizada uma modificao na biblioteca do sistema com a repetio dos mesmos testes, o qual ser intitulado de ciclo II de teste. Atualmente, o sistema da empresa Z utiliza a biblioteca ADOdb, o qual ser avaliado no ciclo I de teste. Para o ciclo II de teste ser substituda a biblioteca atual pela biblioteca PDO, sendo realizada uma comparao do tempo de processamento da funo de clculo entre os ciclos. 5.3. Execuo dos testes e anlise dos resultados Nesta seo sero apresentados alguns dos resultados obtidos atravs dos testes realizados, utilizando as mtricas e cenrios descritos na seo anterior, bem como o resultado final da anlise. Para obter os resultados, a execuo dos testes foi realizada atravs da ferramenta WebLoad Console, onde foi efetuado a captura do response time (tempo total de resposta do clculo), tanto no ciclo I quanto no ciclo II para sua posterior comparao e anlise. Na seo 5.3.1 ser apresentada a anlise dos resultados dos ciclos I e II e na seo 5.3.2 ser apresentada uma concluso geral sobre a anlise realizada dos resultados.

5.3.1. Anlise dos resultados dos ciclos I e II de teste Nesta seo ser realizada uma anlise comparativa dos dois ciclos de testes executados. O primeiro ciclo de testes foi baseado nas configuraes atuais do sistema da empresa Z. Foi utilizado o ambiente, ferramenta e cenrios descritos nas sees anteriores. No segundo ciclo de testes foi realizada a troca da biblioteca do PHP. Atualmente a empresa utiliza a biblioteca ADOdb e para o ciclo II dos testes esta biblioteca foi substituda pela biblioteca PDO. A tabela 3 mostra a comparao de tempo de processamento com itens calculados para 1 VU, porm, a diferena do response time no muito elevada sendo que a quantidade de itens aumentou tambm. Na tabela 3 pode-se verificar que o valor do response time no ciclo II obteve melhor desempenho em todos os cenrios.
Tabela 3 - Tempo de processamento x Quantidade de itens 1 VU (Anlise 1).

Ciclo I Cenrio 26 29 32 35 38 Total de itens calculados 1.000 10.000 20.000 30.000 40.000 Response time (s) 10 14 21 28 41 Tempo por item (s) 0,010000 0,001400 0,001050 0,000933 0,001025

Ciclo II Response time (s) 6 11 19 26 40 Tempo por item (s) 0,006000 0,001100 0,000950 0,000867 0,001000

Baseado na tabela 3, a figura 1 mostra o response time dividido pela quantidade total de itens do clculo, desta forma obteve-se o tempo mdio de processamento para cada item.
(a) (b)

Figura 1 Tempo de processamento x Quantidade de itens 1 VU (Anlise 1).

Ao analisar a figura 1 que apresenta o ciclo I (figura 1 (a)) e II (figura 1 (b)) dos testes, pode-se observar que nos dois ciclos o tempo de processamento para cada item maior quando existe uma menor quantidade de itens sendo calculado, porm, nota-se que o ciclo 2 obteve uma melhoria em relao ao ciclo I. A tabela 4 apresenta o ciclo I e II com 1VU e cenrios com quantidade de itens mais elevadas. Pode-se observar que o response time de todos os cenrios teve melhor desempenho no ciclo II. Ao analisar o ciclo II, todos os cenrios tiveram tempo de processamento menor que o ciclo I, o cenrio 01 obteve 33%, o cenrio 06 obteve 20%,

o cenrio 11 obteve 6% e os cenrios 16 e 21 obtiveram 11%. Desta forma, o ciclo II teve uma mdia de 16% a menos no processamento do que o ciclo I.
Tabela 4 - Tempo de processamento x Quantidade de itens 1 VU (Anlise 2).

Ciclo I Cenrio 01 06 11 16 21 Total de itens calculados 8.000 160.000 320.000 480.000 640.000 Response time (s) 12 77 177 275 358 Tempo por item (s) 0,001500 0,000481 0,000553 0,000573 0,000559

Ciclo II Response time (s) 9 64 167 247 320 Tempo por item (s) 0,001125 0,000400 0,000522 0,000515 0,000500

A figura 2 apresenta dados dos ciclos I e II baseados na tabela 4. Pode-se observar que em ambos os ciclos o tempo de processamento por item mais elevado no menor valor de clculo (8.000 itens), tendo um melhor desempenho com 160.000 itens de processamento e com os demais valores um pequeno aumento no tempo em relao ao melhor desempenho. No entanto, o ciclo II apresenta um melhor desempenho do tempo por item calculado do que o ciclo I.
(a) (b)

Figura 2 Tempo de processamento x Quantidade de itens 1 VU (Anlise 2).

A tabela 5 apresenta os ciclos I e II com 15 cenrios e a variao de um, dois e trs usurios virtuais, sendo o total de itens calculados igual a multiplicao dos itens cadastrados por empresa com a quantidade de VU.
Tabela 5 - Tempo de processamento x Quantidade de itens (Anlise 3).

Ciclo I
Conjunto de Cenrios Cenrio VU Itens cadastrados por empresa Total de itens calculado Response time (s) Tempo por item (s)

Ciclo II
Response time (s) Tempo por item (s)

26 27 28 29 30 31 32 33 34 35

1 2 3 1 2 3 1 2 3 1

1.000 1.000 1.000 10.000 10.000 10.000 20.000 20.000 20.000 30.000

1.000 2.000 3.000 10.000 20.000 30.000 20.000 40.000 60.000 30.000

10 14 15 14 21 51 21 28 46 28

0,010000 0,007000 0,005000 0,001400 0,001050 0,001700 0,001050 0,000700 0,000767 0,000933

6 8 11 11 13 22 19 23 45 26

0,006000 0,004000 0,003667 0,001100 0,000650 0,000733 0,000950 0,000575 0,000750 0,000867

36 37 38 39 40

2 3 1 2 3

30.000 30.000 40.000 40.000 40.000

60.000 90.000 40.000 80.000 120.000

45 102 41 72 137

0,000750 0,001133 0,001025 0,000900 0,001142

53 107 40 76 152

0,000883 0,001189 0,001000 0,000950 0,001267

A figura 3 mostra a anlise do conjunto 1 de cenrios da tabela 5. Pode-se concluir que o ciclo II obteve desempenho melhor que o ciclo I, apesar de em ambos os ciclos ter aumentado o tempo total conforme foi aumentando a quantidade de itens e o nmero de usurios virtuais.

Figura 3 Conjunto 1 de teste.

Atravs da anlise da tabela 5 pode-se observar que em todos os conjuntos de testes devido ao aumento no nmero de item calculado e o nmero de usurios virtuais, teve um aumento tambm no tempo total de processamento. A maior diferena do response time ocorreu na triplicao de itens do conjunto 2 (tabela 5), onde o ciclo II teve um ganho de tempo, diminuindo 56,9% o reponse time em relao ao ciclo I. Contudo, o maior aumento de tempo no ciclo II ocorreu na duplicao de itens do conjunto 4, chegando a 17,8% maior que o ciclo I. Os conjuntos de cenrios 2 e 3 podem ser visualizados na figura 4, a qual est disponibilizada em duas partes a e b respectivamente.
(a) (b)

Figura 4 Conjuntos 2 e 3 dos testes.

Ao analisar a figura 4 (a) (conjunto 2) e a figura 4 (b) (conjunto 3) dos testes, nota-se que com at 20.000 itens de clculo e com 2 VU o desempenho do ciclo II foi melhor que o ciclo I. No entanto, com 60.000 itens executando com 3 usurios virtuais o ciclo II teve melhor desempenho com apenas 2,17% sobre o ciclo I.

Pode ser observado na figura 5 (a) o conjunto 4 e na figura 5 (b) o conjunto 5 dos testes da tabela 5. Tanto no conjunto 4 quanto no conjunto 5 o response time do ciclo II teve um aumento do tempo em relao ao ciclo I, chegando a um aumento de 10,9% no processamento de 120.000 itens. Conclui-se que no processamento entre 60 e 120 mil itens o ciclo I teve melhor desempenho que o ciclo II.
(a) (b)

Figura 5 Conjuntos 4 e 5 dos testes.

Figura 6 Processamento de 320.000 itens com 1VU e 2VU.

A figura 6 mostra os testes realizados com os cenrios 07 e 11 da tabela 2, onde ambos tm a mesma quantidade de itens processados, mas com quantidade de usurios virtuais diferentes. Pode-se observar que em ambos os ciclos o processamento com 1VU teve o response time maior que o processamento com 2VU, chegando a uma diferena de 49,7% superior no ciclo I. Conclui-se que com o processamento de 320.000 itens, tanto com 1 VU ou com 2 VU, o ciclo I obteve melhor desempenho que o ciclo II. O resultado dos testes dos cenrios 08 e 16 da tabela 2 utilizando a mesma quantidade de itens e com quantidade de usurios virtuais diferentes pode ser visualizado na figura 7. O ciclo II obteve a maior diferena do response time entre 1 VU e 3 VU (53,8%), sendo que em ambos os ciclos o processamento com 3 VU teve um melhor desempenho do que com 1 VU. Entretanto, pode-se observar que o ciclo II (1 VU e 3 VU) obteve melhor desempenho que o ciclo I.

Figura 7 Processamento de 480.000 itens com 1VU e 3VU.

A figura 8 mostra o resultado dos testes 09, 12 e 21 da tabela 2. O response time com 1 VU, obteve cerca de 35% a mais de tempo do que com 2 VU, porm, analisando o teste com 1 VU nota-se que este obteve um melhor desempenho no ciclo II, atingindo 10,6% de melhoria no tempo. Ao observar a figura 8, pode-se concluir que o ciclo II, clculo com 640.000 itens e utilizando 1 VU, 2 VU e 4 VU teve um melhor desempenho do que o ciclo I.

Figura 8 Processamento de 640.000 itens com 1VU, 2VU e 4VU.

Nesta seo foi apresentada a anlise dos testes realizados conforme a descrio da tabela 2 e sees anteriores. Na prxima seo ser apresentada uma concluso geral desta seo. 5.3.2. Concluso da anlise dos ciclos I e II Esta seo apresenta uma concluso geral sobre a anlise realizada com os ciclos I e II dos testes propostos para este documento. Atravs da tabela 6 pode-se observar o resultado de todos os 32 testes realizados, onde a referncia de resultado a tabela ou figura que foi analisada na seo anterior e os cenrios conforme foram descritos na tabela 2.
Tabela 6 Anlise geral dos resultados.

Referncia de resultado Tabela 3 Tabela 4 Tabela 5 conjuntos 01, 02 e 03 Tabela 5 conjuntos 04

Cenrios 26, 29, 32, 35, 38 01, 06, 11, 16, 21 Conj. 01: 26, 27, 28 Conj. 02: 29, 30, 31 Conj. 03: 32, 33, 34 Conj. 04: 35, 36, 37

Quantidade de testes 5 5 9

Ciclo com melhor desempenho Ciclo II Ciclo II Ciclo II

Ciclo I

e 05 Figura 6 Figura 7 Figura 8

Conj. 05: 38, 39, 40 07, 11 08, 16 09, 12, 21

2 2 3

Ciclo I Ciclo II Ciclo II

Conforme a anlise da seo anterior, o ciclo II teve seu melhor desempenho no conjunto 2 de testes da tabela 5 com at 60.000 itens de processamento, onde obteve um ganho de 56,9% em relao ao ciclo I. Porm, o ciclo II tambm teve seu pior desempenho no conjunto 4, atingindo 17,8% a mais de response time do que o ciclo I. Na tabela 6 pode-se observar que o ciclo I de testes obteve melhor desempenho em dois momentos, um atravs dos conjuntos 04 e 05 de testes com processamento entre 60 e 90 mil itens e, o outro foi obtido atravs dos cenrios 07 e 11 com processamento de 320.000 itens. Atravs destas anlises, conclui-se que o ciclo II obteve desempenho melhor em 75% dos testes realizados e o ciclo I obteve melhor desempenho em apenas 25% dos testes. Desta forma, pode-se afirmar que o ciclo II teve melhor avaliao e desempenho no processamento de itens de clculo com a mudana para a biblioteca PDO da linguagem do PHP. Na prxima seo ser abordado alguns trabalhos relacionados que tiveram como base e referncia para o desenvolvimento deste artigo.

6. Trabalhos relacionados
Este trabalho foi influenciado por outros estudos realizados na rea de testes e aplicaes web. Alguns destes trabalhos esto descritos a seguir. Menasc (2002) relata que uma maneira de assegurar desempenho de infraestrutura em TI (Tecnologia da Informao) atravs do teste de carga, o qual possibilita conhecer como seu web site suporta uma carga de trabalho esperada atravs de um conjunto de testes especficos que simulam o comportamento do cliente em diferentes nveis de carga. O autor descreve tambm os fatores de teste de carga de QoS (Quality of Service), como conduzir um teste de carga e como isto precisa de severos nveis de requisitos. Mgheder (2008) expem no artigo o potencial dos metadados que so armazenados em tabelas do sistema para criar interface dinmica para o usurio. Para seu trabalho, o autor utilizou o PHP, biblioteca ADOdb e PostgreSQL, os quais provam ser um bom candidato para o gerador web de interface para o usurio. Um novo modelo para teste de carga de web sites foi apresentado por Draheim (2006), o qual baseado em modelos estocsticos de comportamento de usurios. Este modelo permite a criao de fcil modelos realsticos do comportamento individual de usurios. Lu (2006) apresenta uma pesquisa de um mtodo de anlise de desempenho baseado em teste de carga abrangente, executando uma srie de teste de carga no lado do cliente enquanto um consumidor de recurso tambm realizado no lado do servidor. Um modelo de desempenho ento construdo baseado nestes resultados, o qual apresenta um mtodo para quantificar e analisar desempenho do sistema.

7. Consideraes finais
Neste trabalho foi realizada uma anlise de desempenho de um clculo para uma aplicao web utilizando as bibliotecas ADOdb e PDO. Para esta avaliao utilizou-se de dois ciclos de testes, um para cada biblioteca. Foram realizados vrios testes visando verificar o response time do processamento do clculo contido na aplicao web, como foi observado na seo 5.3. Nos testes realizados, pode-se afirmar que a utilizao da biblioteca PDO nos testes realizados por este trabalho obteve aproveitamento superior a biblioteca ADOdb na maioria dos testes realizados. Pode-se concluir que mesmo que a biblioteca PDO no tenha atingindo 100% de melhoria nos testes realizados, mostrou-se mais eficiente em 81% dos testes realizados, obtendo uma mdia de 22,12% de melhoria em relao a biblioteca ADOdb. Desta forma, resultando na certeza de melhor desempenho para o processamento do clculo do estudo de caso. Aps ter melhorado o tempo de processamento da funcionalidade de clculo com os testes deste trabalho, a empresa Z alterou em outras funcionalidades do sistema para a biblioteca PDO. Com a utilizao da biblioteca PDO obteve um tempo de resposta menor em outras funcionalidades em comparao ao uso da biblioteca ADOdb, como por exemplo, na gerao de relatrios. Porm, esta verificao de melhor desempenho em outras funcionalidades no foi validada com testes como mostrado neste trabalho e sim atravs de um feedback da empresa, caberia uma validao cientfica para sua comprovao. 7.2. Limitaes do trabalho Durante a realizao deste trabalho, foi encontrada uma limitao referente a infraestrutura dos testes. A limitao foi encontrada devido a no ter acesso a um servidor com caracterstica similar ao servidor de produo da aplicao. A empresa Z no possui equipamento extra para a realizao de testes e, no poderia ser utilizado o servidor de produo da aplicao, pois os testes realizados neste trabalho poderiam causar problemas na aplicao ou em outro servio que estivesse sendo executado. 7.1. Trabalhos futuros Os testes e as anlises atingiram resultados satisfatrios. No entanto, notou-se que o tempo resposta do clculo deveria ser menor. Uma sugesto de trabalho futuro se refere anlise da complexidade do algoritmo utilizado para o clculo de depreciao de bens da empresa Z, a fim de verificar se sua complexidade poderia ser diminuda e com isto analisar novamente o desempenho do response time.

Referncias
ADODB. ADOdb Library for PHP. Disponvel em <http://phplens.com/lens/adodb/docs-adodb.htm>. Acessado em Novembro de 2009.

APACHE. The Apache Software Foundation. <http://www.apache.org/>. Acessado em Outubro de 2009.

Disponvel

em

BENCHMARKING. Benchmarking PDO and ADOdb Database Abstraction Libraries. Disponvel em: <http://tonylandis.com/perfomance/php-ADOdb-pdo-mysqldatabase-apc-benchmark/>. Acessado em Novembro de 2009. DRAHEIM, Dirk; GRUNDY, John; HOSKING, John; LUTTEROTH, Christof; WEBER, Gerald. Realistc Load Testing of Web Applications. In: IEEE. Proceedings of the Conference on Software Maintenance and Reengineering. 2006. JIANG, Zhen Ming; HASSAN, Ahmed E.; HAMANN, Gilbert; FLORA, Parminder. Automatic Identification of Load Testing Problems. In: IEEE. Conference on Software Maintenance. 2008. LU, Yanyan; WU, Haiyan; WANG, Yingxue. Web Application Performance Analysis Based on Comprehensive Load Testing. In: IEEE. Conference on Wireless, Mobile and Multimedia Networks. 2006. LUTTEROTH, Christof; WEBER, Gerald. Modeling a Realistic Workload for Performance Testing. In: IEEE. Enterprise Distributed Object Computing Conference. 2008. MEIER, J.D.; FARRE, Carlos; BANSODE, Prashant; BARBER, Scott; Rea, Dennis. Performance Testing Guidance for Web Applications - patterns & practices. Microsoft Corporation. 2007. MENASC, Daniel A. Load Testing of Web Sites. In: IEEE . Internet Computing. 2002.

MGHEDER, Mohamed A.; RIDLEY, M. J. Automatic Generation of Web User Interfaces in PHP Using Database Metadata. In: IEEE. Internet and Web Applications and Services. 2008.
MOLINARI, Leonardo. Testes de Performance. Editora Visual Books. 2009. P.32-36. MYSQL. MySQL (Structured Query Language). <http://www.mysql.com/>. Acessado em Outubro de 2009. Disponvel em

PDO. PDO Library for PHP. Disponvel em <http://php.net/manual/en/book.pdo.php>. Acessado em Novembro de 2009. PHP. PHP: Hypertext Preprocessor. Disponvel em <http://www.php.net>. Acessado em Outubro de 2009. RAMACHANDRAN, Madhu. Open Source Tools for Performance Testing. 2008. Disponvel em < http://www.stickyminds.com>. Acessado em Novembro de 2009. SCHULMEYER, G. Gordon. Handbook of software quality assurance Fourth Edition. Ed. Artech House. 2008. Pag. 291 -310. ZEND. Zend Framework. Disponvel em < http://framework.zend.com>. Acessado em Outubro de 2009.

You might also like