Estudo sobre linguagens voltadas para web



As linguagens comparadas foram escolhidas através de sua popularidade, segundo o site LanPop; descartadas as que não são propriamente web. As eleitas, nada fora do esperado, foram:

  • PHP
  • ASP
  • .NET
  • Perl
  • JSP

Como o site de referência não menciona versões e em prol de uma comparação mais ampla, versões diferentes de cada linguagem foram consideradas neste estudo.
Outro fator importante para a qualidade do resultado é o ambiente. Desta forma foi estabelecido que cada linguagem deveria rodar em seu ambiente nativo, exceto o Java (JSP). As linguagens Php e Perl, foram executadas em ambiente Linux, Asp e .NET em ambiente Windows e o Java (JSP) em ambas as plataformas. A configuração dos ambientes de execução obedeceu religiosamente a instalação padrão, levando em conta modificações que permitiam que a plataforma utilizasse todos os recursos oferecidos pelo hardware, principalmente memória ram. É sabido que existem diversos módulos e extensões que permitem a otimização de desempenho para cada linguagem, estes foram desconsiderados totalmente deste teste. A configuração do ambiente, de forma sucinta, consta abaixo:

Hardware do servidor (Windows e Linux)

  • Processador Intel Xeon TM Dual (biprocessada)
  • 2Gb RAM
  • 2x Discos SCSI 76Gb
  • Placa de Rede Gigabit

Máquinas clientes (4 PCs)

  • Processador AMD Atlhon 64 2800
  • 1Gb RAM
  • Placa de Rede Gigabit
  • Sistema operacional - Linux Debian 64

Infraestrutura de Rede

  • Switch Gigabit
  • Rede local

Medições

As principais medições realizadas estão detalhadas a seguir.

Tempo de resposta

  1. Avaliar o tempo entre a requisição e seu completo processamento
  2. O resultado equivale a média de tempo em relação ao número de requisições.

Utilização de CPU

  1. Avaliar a utilização de processamento do servidor durante as requisições.
  2. O resultado equivale a média de uso do processamento em relação ao número de conexões.

Utilização de RAM

  1. Avaliar a utilização da memória RAM durante as requisições.
  2. O resultado equivale a média de uso da mémoria em relação ao número de requisições em relação ao tempo de duração das requisições

Para realizar a medição, foram desenvolvidos scripts simples, onde sua função basica era o calculo do pi com 20 casas decimais e na sequência a ordenação de um array numérico com 100 posições preenchidas aletoriamente a cada requisição, utilizando o método de ordenação bubble sort

Metodologia

  1. Enviar um bloco de X requisições, sendo que cada uma das quatro máquinas clientes enviam a um mesmo servidor X/4 requisições. Utiliza-se o software wget para realizar cada requisição e posteriormente o software webscarab.
  2. Aguardar e registar o resultado.
  3. Estabilizar o servidor e as máquinas clientes.
  4. Enviar um novo bloco de requisições, conforme item 1.

Este estudo permanece em desenvolvimento, uma vez que durante os procedimentos notou-se a necessidade de realizar testes mais aprofundados considerando outos fatores e variáveis. Em breve devo publicar um artigo contendo o estudo e os resultados completos, mas por hora apresento o resumo dos resultados obtidos até aqui.







Ainda é prematura uma conclusão definitiva baseada na análise dos dados. Pelo que o mercado brasileiro fala de algumas linguagens como Java e .NET, alguns mitos e paradigmas estão caindo por terra.


>>conclusão<<