Análise comparativa

Gambas é uma linguagem interpretada, sem compilação "just-in-time" para código nativo até a versão 3.2.

Eis algumas pequenas análise comparativa principalmente roubadas na internet usado para comparar Gambas e Gambas compilado em JIT com interpretador Python e Perl.

Os testes foram feitos em meu próprio computador (um processador Intel Core i5 @ 3.40 GHz rodando Ubuntu 14.10 64 bits), executando-os com o utilitário time system utility. O tempo de execução é a soma do tempo de utilizador e a hora do sistema.

Note que é usado pouco tempo para compilar os arquivos fontes e todas as linguagens.

Quase todos os benchmark são insignificantes.

Resultados

Os tempos de execução são medidos em segundos.

Índice de referência Python Perl Gambas Gambas + JIT
Sort 4,63  85,99  5,34  0,39 
Polinômios 30,85  41,64  24,97  1,14 
Primos 14,89  19,70  12,37  2,48 
nbody 11,71  16,20  11,51  1,68 
Mandelbrot 20,15  12,23  10,63  0,28 

Versões das linguagens

Foram utilizadas as seguintes versões das linguagens:
  • Python 2.7.6.

  • Perl 5.18.2.

  • Gambas 3.6.90 (versão em desenvolvimento).

Código-fonte de referência

Para obter o código-fonte dos benchmarks, navegue no diretório benchmark no código fonte Gambas.

Execute o benchmark em seu próprio sistema

Há um script chamado benchmark.gbs no diretório benchmark. Basta abrir um terminal, mude para o diretório e execute-o.

Você vai obter o resultado como dados HTML. Se você quiser compartilhá-lo, não esqueça de especificar em qual distribuição foi executado e o seu modelo de CPU.

Por exemplo, no meu próprio sistema (com 4 núcleos, portanto, as quatro linhas repetidas):

$ uname -a
Linux black-tower 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ cat /proc/cpuinfo | grep "model name"
model name      : Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz
model name      : Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz
model name      : Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz
model name      : Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz