Atualmente, existem três avaliadores de expressão em código aberto desenvolvidos em Fortran disponíveis gratuitamente na Internet. Um brasileiro disponível neste site, um australiano e um alemão. Realizaram-se testes para analisar a performance destes três parsers e estes testes consistiram na realização de cinco milhões de iterações para vinte e cinco expressões distintas, com a medição do tempo que cada avaliador gastou para realizar tal tarefa. Os testes foram realizados num computador Intel Pentium III, 128 Mbytes de memória RAM e a compilação foi feita no Compaq Visual Fortran (CVF) 6.5 utilizando-se a opção QuickWin Application. O tempo gasto para o cálculo de cada expressão devidamente compilada também foi medido, para que se tivesse uma noção do quão lento é um parser em Fortran, em comparação com o menor tempo possível. A diferenciação na performance dos avaliadores foi feita baseada apenas no tempo gasto para a execução das tarefas, porque os resultados numéricos de todos eles foram equivalentes, e compatíveis com o resultado numérico da expressão compilada.

Variáveis: x = 0.175, y = 0.110, z = 0.900, x1 = 0.508, x2 = 30.000, a = 0.900, b = 0.100,
c = 0.110, d = 0.120,
e = 0.130, f = 0.140 .

1) Função: a+b*x1
Resultado Final: 0.9508
Tempo de máquina (s):
0.080
Tempo do Parser Desenvolvido (LAB Fit) (s):
1.872
Tempo do "Parser Australiano" (Stuart Midgley) (s):
22.242
Tempo do "Parser Alemão" (Roland Schmehl) (s):
3.205

2) Função: (a*x**b)/(c+x**b)
Resultado Final:0.7958
Tempo de máquina (s):
4.076
Tempo do Parser Desenvolvido (LAB Fit) (s):
7.621
Tempo do "Parser Australiano" (Stuart Midgley) (s):
34.059
Tempo do "Parser Alemão" (Roland Schmehl) (s):
10.515

3) Função: (a*x)/(b+(x*(1+x/c)))
Resultado Final:0.2846
Tempo de máquina (s):
0.391
Tempo do Parser Desenvolvido (LAB Fit) (s):
4.767
Tempo do "Parser Australiano" (Stuart Midgley) (s):
33.848
Tempo do "Parser Alemão" (Roland Schmehl) (s):
8.0710

4) Função: a+b*exp(c*x)+d*exp(e*x)
Resultado Final:1.1247
Tempo de máquina (s):
3.044
Tempo do Parser Desenvolvido (LAB Fit) (s):
7.731
Tempo do "Parser Australiano" (Stuart Midgley) (s):
38.585
Tempo do "Parser Alemão" (Roland Schmehl) (s):
11.406

5) Função: a+b*(exp(c*x) - 1)/c
Resultado Final:0.9177
Tempo de máquina (s):
1.733
Tempo do Parser Desenvolvido (LAB Fit) (s):
5.568
Tempo do "Parser Australiano" (Stuart Midgley) (s):
34.680
Tempo do "Parser Alemão" (Roland Schmehl) (s):
8.912

6) Função: a+b*log(x)+c*log(x)**2
Resultado Final:1.0599
Tempo de máquina (s):
2.683
Tempo do Parser Desenvolvido (LAB Fit) (s):
8.272
Tempo do "Parser Australiano" (Stuart Midgley) (s):
37.434
Tempo do "Parser Alemão" (Roland Schmehl) (s):
11.927

7) Função: a-log(1+b*exp(-c*x))
Resultado Final:0.8064
Tempo de máquina (s):
2.784
Tempo do Parser Desenvolvido (LAB Fit) (s):
6.880
Tempo do "Parser Australiano" (Stuart Midgley) (s):
37.044
Tempo do "Parser Alemão" (Roland Schmehl) (s):
9.785

8) Função: (a+b*x)/(c+x)
Resultado Final:3.2193

Tempo de máquina (s): 0.191
Tempo do Parser Desenvolvido (LAB Fit) (s):3.024
Tempo do "Parser Australiano" (Stuart Midgley) (s):29.903
Tempo do "Parser Alemão" (Roland Schmehl) (s):5.548

9) Função: a+b*exp(-(c*x))
Resultado Final:0.9981
Tempo de máquina (s):1.772
Tempo do Parser Desenvolvido (LAB Fit) (s):4.647
Tempo do "Parser Australiano" (Stuart Midgley) (s):33.907
Tempo do "Parser Alemão" (Roland Schmehl) (s):7.101

10) Função: a+b*sin(2*3.14*x/c+d)
Resultado Final:0.8366
Tempo de máquina (s):1.182

Tempo do Parser Desenvolvido (LAB Fit) (s):5.728
Tempo do "Parser Australiano" (Stuart Midgley) (s):36.803
Tempo do "Parser Alemão" (Roland Schmehl) (s): 9.324

11) Função: a+b*sin(2*4.14*x/c+d)**2
Resultado Final:0.9441
Tempo de máquina (s):2.394

Tempo do Parser Desenvolvido (LAB Fit) (s):8.321
Tempo do "Parser Australiano" (Stuart Midgley) (s):40.458
Tempo do "Parser Alemão" (Roland Schmehl) (s):12.488

12) Função: 1-exp(-a*x)
Resultado Final:0.1457
Tempo de máquina (s):1.773

Tempo do Parser Desenvolvido (LAB Fit) (s):4.456
Tempo do "Parser Australiano" (Stuart Midgley) (s):29.542
Tempo do "Parser Alemão" (Roland Schmehl) (s): 6.088

13) Função: a+b*x1+c*x2
Resultado Final:4.2508
Tempo de máquina (s):0.071

Tempo do Parser Desenvolvido (LAB Fit) (s):2.934
Tempo do "Parser Australiano" (Stuart Midgley) (s):29.472
Tempo do "Parser Alemão" (Roland Schmehl) (s): 5.507

14) Função: a+b*log(x1)+c*log(x2)
Resultado Final:1.2064
Tempo de máquina (s):1.813

Tempo do Parser Desenvolvido (LAB Fit) (s):5.368
Tempo do "Parser Australiano" (Stuart Midgley) (s):34.169
Tempo do "Parser Alemão" (Roland Schmehl) (s): 8.352

15) Função:a*x1**b*x2**c
Resultado Final:1.2227
Tempo de máquina (s):3.946

Tempo do Parser Desenvolvido (LAB Fit) (s): 6.780
Tempo do "Parser Australiano" (Stuart Midgley) (s):32.157
Tempo do "Parser Alemão" (Roland Schmehl) (s): 9.323

16) Função: cosh(log(abs(y*z+x**2+x1**x2)))+a*d*(exp(c*f)+154.3)
Resultado Final:20.6961
Tempo de máquina (s):
7.150
Tempo do Parser Desenvolvido (LAB Fit) (s):17.114
Tempo do "Parser Australiano" (Stuart Midgley) (s):59.876
Tempo do "Parser Alemão" (Roland Schmehl) (s): 23.664

17) Função: a+b*log(x1)+c*x2+d*x2**2
Resultado Final:112.1323
Tempo de máquina (s): 0.982

Tempo do Parser Desenvolvido (LAB Fit) (s):8.202
Tempo do "Parser Australiano" (Stuart Midgley) (s):42.471
Tempo do "Parser Alemão" (Roland Schmehl) (s): 12.238

18) Função: atan(sinh(log(abs(exp(z/x)*sqrt(y+a**c+f*e)))))
Resultado Final:1.5597
Tempo de máquina (s):
9.533
Tempo do Parser Desenvolvido (LAB Fit) (s):15.573
Tempo do "Parser Australiano" (Stuart Midgley) (s):53.958
Tempo do "Parser Alemão" (Roland Schmehl) (s): 20.359

19) Função: atan(sinh(log(abs(exp(z/x)*sqrt(y+a**c+f*e)))))
Resultado Final:1.1006
Tempo de máquina (s):0.621

Tempo do Parser Desenvolvido (LAB Fit) (s):7.160
Tempo do "Parser Australiano" (Stuart Midgley) (s):39.246
Tempo do "Parser Alemão" (Roland Schmehl) (s): 11.276

20) Função: a+b/x1+c*log(x2)+d*log(x2)**2+e*log(x2)**3
Resultado Final:7.9741
Tempo de máquina (s):5.458
Tempo do Parser Desenvolvido (LAB Fit) (s):14.380
Tempo do "Parser Australiano" (Stuart Midgley) (s):54.448
Tempo do "Parser Alemão" (Roland Schmehl) (s): 20.680

21) Função: atan(sinh(log(abs(exp(z/x)*sqrt(y+a**c+f*e)))))*cos(log(abs(sqrt(y+a**c+f*e))))
Resultado Final:1.557368
Tempo de máquina (s):14.258

Tempo do Parser Desenvolvido (LAB Fit) (s):24.518
Tempo do "Parser Australiano" (Stuart Midgley) (s):76.528
Tempo do "Parser Alemão" (Roland Schmehl) (s): 32.915

22) Função: a+b*log(x1)+c*log(x1)**2+d/x2+e/x2**2
Resultado Final:0.8869
Tempo de máquina (s):3.034
Tempo do Parser Desenvolvido (LAB Fit) (s):13.550
Tempo do "Parser Australiano" (Stuart Midgley) (s):52.917
Tempo do "Parser Alemão" (Roland Schmehl) (s): 19.638

23) Função: (x+a)/(b+c*(x+a)+d*(x+a)**2)
Resultado Final:3.0118
Tempo de máquina (s):0.220
Tempo do Parser Desenvolvido (LAB Fit) (s): 8.312
Tempo do "Parser Australiano" (Stuart Midgley) (s):45.255
Tempo do "Parser Alemão" (Roland Schmehl) (s):12.989

24) Função: (x+y+z+x*y+x*z+y*z+x/y+x/z+y/z+x*cos(x)+y*sin(y)+z*tan(z)*2/(x+y+z+x*y+
x*z+y*z+x/y+x/z+y/z+x*cos(x)+y*sin(y)+z*tan(z))*3+sqrt(x*y*z+x+y+z)*log10(sqrt(x*2+y*2+z*2)+x+y+z))
Resultado Final:5.4819
Tempo de máquina (s):9.644
Tempo do Parser Desenvolvido (LAB Fit) (s): 48.119
Tempo do "Parser Australiano" (Stuart Midgley) (s):178.060
Tempo do "Parser Alemão" (Roland Schmehl) (s): 77.681

25) Função: a+b*log(x1)+c*log(x1)**2+d*log(x1)**3+e/x
Resultado Final:0.8498
Tempo de máquina (s): 5.448
Tempo do Parser Desenvolvido (LAB Fit) (s):15.122
Tempo do "Parser Australiano" (Stuart Midgley) (s):55.259
Tempo do "Parser Alemão" (Roland Schmehl) (s):
21.361

| Voltar |
Hosted by www.Geocities.ws

1