[Maurilio]
latest code, OS/2 GCC, HB_FM_STATISTICS_OFF, PIV HT 3.6GHz, SMP Kernel.
ST
============================================================
total application time:                              52.85
total real time:                                     52.85
MT
============================================================
total application time:                              70.91
total real time:                                     70.92

[Maurilio]
Ok, here they are,
same hardware, xharbour at $Id: ChangeLog,v 1.6182 2008/08/01 09:41:14
marchuet Exp $
MT
total application time:                             214.79
ST
total application time:                              95.18

[Przemek]
I expected worse results then Harbour ones but I didn't expect such
big difference and such big MT overhead. xHarbour does not even use
protection for complex variable reference counters in OS2 builds -
Walter implemented them only for MS-Windows.
In my Linux box the difference is smaller though I'm using a little
bit modified xHarbour version with working native TLS support. I'll
made tests with current clean CVS.


I see many surprises:

a) PIV HT 3.6GHz, SMP Kernel.
My hardware for OS/2 tests are AMD Athlon 2200+ 2.0 Ghz 1 Gb RAM
This Athlon never are ahead of an PIV 2.2 GHz, my "old" PIV 3.3 GHz HT
was allways near double speed than Athlon in any test
So something is wrong: results for PIV HT 3.6 Ghz should be better than
Athlon 2200+ at least in half of time

Or your machine is heavily loaded, or low RAM or something else, but
must be better

b) A very big difference between Harbour and xHarbour in both ST and MT

c) A very big difference between ST and MT in xHarbour


As I have xHarbour MT under OS/2 (yes, Maurilio told me how to build it)
I made same tests. xHarbour around 14 August 2008

speedtst.prg

Harbour
=======
ST
     total application time:                              47.13
     total real time:                                     47.14
MT
     total application time:                              51.98
     total real time:                                     51.98

xHarbour
========
ST
     total application time:                              71.52
     total real time:                                     71.52
MT
     total application time:                             119.68
     total real time:                                    119.69


Again, results should be greater than those of Maurilio hardware


Complete results for xHarbour are below

David Macias

-------------------------
xHarbour ST

Startup loop to increase CPU clock...

09/25/08 15:05:22 xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6192), OS/2
4.50
ARR_LEN =         16
N_LOOPS =    1000000
empty loops overhead =          0.23
CPU usage -> secondsCPU()

c:=L_C ->                                             0.15
n:=L_N ->                                             0.13
d:=L_D ->                                             0.13
c:=M_C ->                                             0.16
n:=M_N ->                                             0.14
d:=M_D ->                                             0.14
(sh) c:=F_C ->                                        0.64
(sh) n:=F_N ->                                        0.42
(sh) d:=F_D ->                                        0.29
(ex) c:=F_C ->                                        0.66
(ex) n:=F_N ->                                        0.35
(ex) d:=F_D ->                                        0.28
n:=o:GenCode ->                                       0.57
n:=o[8] ->                                            0.29
round(i/1000,2) ->                                    1.00
str(i/1000) ->                                        2.08
val(a3[i%ARR_LEN+1]) ->                               1.11
dtos(j+i%10000-5000) ->                               1.16
eval({||i%ARR_LEN}) ->                                0.82
eval({|x|x%ARR_LEN},i) ->                             0.88
eval({|x|f1(x)},i) ->                                 1.44
&('f1('+str(i)+')') ->                               10.85
eval([&('{|x|f1(x)}')]) ->                            1.43
j := valtype(a)+valtype(i) ->                         1.76
j := str(i%100,2) $ a2[i%ARR_LEN+1] ->                2.41
j := val(a2[i%ARR_LEN+1]) ->                          1.30
j := a2[i%ARR_LEN+1] == s ->                          0.71
j := a2[i%ARR_LEN+1] = s ->                           0.71
j := a2[i%ARR_LEN+1] >= s ->                          0.70
j := a2[i%ARR_LEN+1] < s ->                           0.69
aadd(aa,{i,j,s,a,a2,t,bc}) ->                         2.94
f0() ->                                               0.67
f1(i) ->                                              0.80
f2(c[8]) ->                                           0.76
f2(c[40000]) ->                                       0.74
f2(@c[40000]) ->                                      0.71
f2(c[40000]); c2:=c ->                                0.89
f2(@c[40000]); c2:=c ->                               0.86
f3(a,a2,c,i,j,t,bc) ->                                1.23
f2(a2) ->                                             0.77
s:=f4() ->                                            2.16
s:=f5() ->                                            1.58
ascan(a,i%ARR_LEN) ->                                 1.08
ascan(a2,c+chr(i%64+64)) ->                           2.75
ascan(a,{|x|x==i%ARR_LEN}) ->                         9.86
============================================================
total application time:                              71.52
total real time:                                     71.52

-------------------------
xHarbour MT

Startup loop to increase CPU clock...

09/25/08 15:06:48 xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6192) (MT),
OS/2 4.50
ARR_LEN =         16
N_LOOPS =    1000000
empty loops overhead =          0.28
CPU usage -> secondsCPU()

c:=L_C ->                                             0.18
n:=L_N ->                                             0.15
d:=L_D ->                                             0.15
c:=M_C ->                                             3.11
n:=M_N ->                                             3.08
d:=M_D ->                                             3.06
(sh) c:=F_C ->                                        0.65
(sh) n:=F_N ->                                        0.40
(sh) d:=F_D ->                                        0.29
(ex) c:=F_C ->                                        0.69
(ex) n:=F_N ->                                        0.42
(ex) d:=F_D ->                                        0.32
n:=o:GenCode ->                                       0.71
n:=o[8] ->                                            0.33
round(i/1000,2) ->                                    0.90
str(i/1000) ->                                        1.89
val(a3[i%ARR_LEN+1]) ->                               1.55
dtos(j+i%10000-5000) ->                               1.26
eval({||i%ARR_LEN}) ->                                0.92
eval({|x|x%ARR_LEN},i) ->                             0.98
eval({|x|f1(x)},i) ->                                 3.07
&('f1('+str(i)+')') ->                               19.44
eval([&('{|x|f1(x)}')]) ->                            3.10
j := valtype(a)+valtype(i) ->                         1.85
j := str(i%100,2) $ a2[i%ARR_LEN+1] ->                2.76
j := val(a2[i%ARR_LEN+1]) ->                          1.68
j := a2[i%ARR_LEN+1] == s ->                          0.78
j := a2[i%ARR_LEN+1] = s ->                           0.79
j := a2[i%ARR_LEN+1] >= s ->                          0.78
j := a2[i%ARR_LEN+1] < s ->                           0.78
aadd(aa,{i,j,s,a,a2,t,bc}) ->                         6.22
f0() ->                                               2.18
f1(i) ->                                              2.31
f2(c[8]) ->                                           2.23
f2(c[40000]) ->                                       2.23
f2(@c[40000]) ->                                      2.18
f2(c[40000]); c2:=c ->                                2.42
f2(@c[40000]); c2:=c ->                               2.38
f3(a,a2,c,i,j,t,bc) ->                                2.78
f2(a2) ->                                             2.23
s:=f4() ->                                            3.76
s:=f5() ->                                            3.19
ascan(a,i%ARR_LEN) ->                                 1.06
ascan(a2,c+chr(i%64+64)) ->                           2.78
ascan(a,{|x|x==i%ARR_LEN}) ->                        13.07
============================================================
total application time:                             119.68
total real time:                                    119.69

----------------



_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to