Forgot the attachment...  =D

Angel Pais escribió:
Performance went to the sky !
Scalability not so much...
Preliminary results here (2 consecutive runs).
Will recompile harbour with all 3 mem allocators and upload binaries to rapidshare.

HTH
Angel
Compiler and Enviroment:
set HB_COMPILER=msvc
set HB_VISUALC_VER=90
set HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF -DHB_FM_DLMT_ALLOC
Program built with: hbmk2.exe speedtst.prg -mt -gc3 -l -ko
03/29/09 17:58:22 Windows Server 2003 / XP x64 5.2.3790
Harbour 1.1.0dev (Rev. 10726) (MT)+ Microsoft Visual C++ 14.0.24999 (32-bit)
THREADS: 2
N_LOOPS: 1000000
                                                        1 th.  2 th.  factor
============================================================================
[ T001: x := L_C ]____________________________________  0.31   0.25 ->  1.25
[ T002: x := L_N ]____________________________________  0.16   0.16 ->  1.01
[ T003: x := L_D ]____________________________________  0.16   0.19 ->  0.83
[ T004: x := S_C ]____________________________________  0.28   0.30 ->  0.95
[ T005: x := S_N ]____________________________________  0.22   0.19 ->  1.16
[ T006: x := S_D ]____________________________________  0.17   0.19 ->  0.92
[ T007: x := M->M_C ]_________________________________  0.34   0.34 ->  1.00
[ T008: x := M->M_N ]_________________________________  0.25   0.20 ->  1.23
[ T009: x := M->M_D ]_________________________________  0.28   0.20 ->  1.38
[ T010: x := M->P_C ]_________________________________  0.28   0.28 ->  1.00
[ T011: x := M->P_N ]_________________________________  0.23   0.24 ->  1.00
[ T012: x := M->P_D ]_________________________________  0.23   0.20 ->  1.15
[ T013: x := F_C ]____________________________________  0.91   0.84 ->  1.07
[ T014: x := F_N ]____________________________________  0.73   0.70 ->  1.04
[ T015: x := F_D ]____________________________________  0.36   0.36 ->  1.00
[ T016: x := o:Args ]_________________________________  0.59   0.58 ->  1.03
[ T017: x := o[2] ]___________________________________  0.42   0.44 ->  0.96
[ T018: round( i / 1000, 2 ) ]________________________  0.73   0.55 ->  1.34
[ T019: str( i / 1000 ) ]_____________________________  1.81   1.64 ->  1.10
[ T020: val( s ) ]____________________________________  0.91   0.88 ->  1.04
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  1.55   1.38 ->  1.13
[ T022: dtos( d - i % 10000 ) ]_______________________  1.67   1.48 ->  1.13
[ T023: eval( { || i % 16 } ) ]_______________________  2.36   2.13 ->  1.11
[ T024: eval( bc := { || i % 16 } ) ]_________________  0.97   0.84 ->  1.15
[ T025: eval( { |x| x % 16 }, i ) ]___________________  1.76   1.56 ->  1.13
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  1.09   0.89 ->  1.23
[ T027: eval( { |x| f1( x ) }, i ) ]__________________  1.89   1.66 ->  1.14
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  1.08   0.97 ->  1.11
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______  1.09   0.97 ->  1.13
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 13.38  15.03 ->  0.89
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 16.36  16.97 ->  0.96
[ T032: x := valtype( x ) +  valtype( i ) ]___________  1.56   1.47 ->  1.06
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]  2.81   2.59 ->  1.08
[ T034: x := a[ i % 16 + 1 ] == s ]___________________  1.28   1.14 ->  1.12
[ T035: x := a[ i % 16 + 1 ] = s ]____________________  1.38   1.22 ->  1.13
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________  1.33   1.22 ->  1.09
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________  1.26   1.20 ->  1.05
[ T038: x := a[ i % 16 + 1 ] < s ]____________________  1.30   1.27 ->  1.02
[ T039: x := a[ i % 16 + 1 ] > s ]____________________  1.26   1.25 ->  1.01
[ T040: ascan( a, i % 16 ) ]__________________________  1.19   1.16 ->  1.03
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 11.64   9.92 ->  1.17
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ]  4.16   3.73 ->  1.11
[ T043: x := a ]______________________________________  0.31   0.28 ->  1.11
[ T044: x := {} ]_____________________________________  1.00   1.05 ->  0.96
[ T045: f0() ]________________________________________  0.33   0.28 ->  1.17
[ T046: f1( i ) ]_____________________________________  0.41   0.38 ->  1.08
[ T047: f2( c[1...8] ) ]______________________________  0.55   0.45 ->  1.21
[ T048: f2( c[1...40000] ) ]__________________________  0.56   0.45 ->  1.24
[ T049: f2( @c[1...40000] ) ]_________________________  0.38   0.41 ->  0.92
[ T050: f2( @c[1...40000] ), c2 := c ]________________  0.61   0.55 ->  1.11
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  1.63   1.50 ->  1.08
[ T052: f2( a ) ]_____________________________________  0.58   0.45 ->  1.27
[ T053: x := f4() ]___________________________________  2.70   2.80 ->  0.97
[ T054: x := f5() ]___________________________________  1.24   1.16 ->  1.07
[ T055: x := space(16) ]______________________________  1.09   1.01 ->  1.08
[ T056: f_prv( c ) ]__________________________________  2.03   1.74 ->  1.17
============================================================================
[   TOTAL   ]_________________________________________ 95.17  91.27 ->  1.04
============================================================================
[ total application time: ]...................................251.56
[ total real time: ]..........................................186.50

second try...


Compiler and Enviroment:
set HB_COMPILER=msvc
set HB_VISUALC_VER=90
set HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF -DHB_FM_DLMT_ALLOC
Program built with: hbmk2.exe speedtst.prg -mt -gc3 -l -ko
03/29/09 18:03:15 Windows Server 2003 / XP x64 5.2.3790
Harbour 1.1.0dev (Rev. 10726) (MT)+ Microsoft Visual C++ 14.0.24999 (32-bit)
THREADS: 2
N_LOOPS: 1000000
                                                        1 th.  2 th.  factor
============================================================================
[ T001: x := L_C ]____________________________________  0.31   0.24 ->  1.33
[ T002: x := L_N ]____________________________________  0.16   0.14 ->  1.11
[ T003: x := L_D ]____________________________________  0.19   0.14 ->  1.33
[ T004: x := S_C ]____________________________________  0.28   0.30 ->  0.95
[ T005: x := S_N ]____________________________________  0.17   0.19 ->  0.91
[ T006: x := S_D ]____________________________________  0.17   0.19 ->  0.92
[ T007: x := M->M_C ]_________________________________  0.31   0.33 ->  0.95
[ T008: x := M->M_N ]_________________________________  0.22   0.22 ->  1.00
[ T009: x := M->M_D ]_________________________________  0.25   0.22 ->  1.14
[ T010: x := M->P_C ]_________________________________  0.26   0.27 ->  1.00
[ T011: x := M->P_N ]_________________________________  0.23   0.22 ->  1.07
[ T012: x := M->P_D ]_________________________________  0.22   0.22 ->  1.00
[ T013: x := F_C ]____________________________________  0.89   0.72 ->  1.24
[ T014: x := F_N ]____________________________________  0.70   0.56 ->  1.25
[ T015: x := F_D ]____________________________________  0.39   0.33 ->  1.19
[ T016: x := o:Args ]_________________________________  0.61   0.55 ->  1.12
[ T017: x := o[2] ]___________________________________  0.45   0.45 ->  1.00
[ T018: round( i / 1000, 2 ) ]________________________  0.70   0.55 ->  1.29
[ T019: str( i / 1000 ) ]_____________________________  1.88   1.56 ->  1.20
[ T020: val( s ) ]____________________________________  0.98   0.88 ->  1.12
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  1.64   1.34 ->  1.22
[ T022: dtos( d - i % 10000 ) ]_______________________  1.69   1.53 ->  1.10
[ T023: eval( { || i % 16 } ) ]_______________________  2.47   2.11 ->  1.17
[ T024: eval( bc := { || i % 16 } ) ]_________________  0.98   0.89 ->  1.10
[ T025: eval( { |x| x % 16 }, i ) ]___________________  1.73   1.50 ->  1.16
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  1.08   0.88 ->  1.23
[ T027: eval( { |x| f1( x ) }, i ) ]__________________  1.92   1.58 ->  1.22
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  1.05   0.94 ->  1.12
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______  1.09   1.01 ->  1.08
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 13.31  14.80 ->  0.90
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 16.11  16.88 ->  0.95
[ T032: x := valtype( x ) +  valtype( i ) ]___________  1.58   1.39 ->  1.13
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]  2.80   2.53 ->  1.11
[ T034: x := a[ i % 16 + 1 ] == s ]___________________  1.25   1.09 ->  1.14
[ T035: x := a[ i % 16 + 1 ] = s ]____________________  1.38   1.19 ->  1.16
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________  1.34   1.16 ->  1.16
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________  1.27   1.23 ->  1.03
[ T038: x := a[ i % 16 + 1 ] < s ]____________________  1.30   1.20 ->  1.08
[ T039: x := a[ i % 16 + 1 ] > s ]____________________  1.27   1.25 ->  1.01
[ T040: ascan( a, i % 16 ) ]__________________________  1.19   1.14 ->  1.04
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 11.59   9.80 ->  1.18
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ]  4.09   3.67 ->  1.11
[ T043: x := a ]______________________________________  0.31   0.28 ->  1.11
[ T044: x := {} ]_____________________________________  1.01   1.02 ->  1.00
[ T045: f0() ]________________________________________  0.34   0.26 ->  1.30
[ T046: f1( i ) ]_____________________________________  0.41   0.39 ->  1.04
[ T047: f2( c[1...8] ) ]______________________________  0.53   0.45 ->  1.17
[ T048: f2( c[1...40000] ) ]__________________________  0.55   0.47 ->  1.17
[ T049: f2( @c[1...40000] ) ]_________________________  0.41   0.36 ->  1.13
[ T050: f2( @c[1...40000] ), c2 := c ]________________  0.61   0.53 ->  1.15
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  1.61   1.53 ->  1.05
[ T052: f2( a ) ]_____________________________________  0.56   0.50 ->  1.13
[ T053: x := f4() ]___________________________________  2.72   2.70 ->  1.01
[ T054: x := f5() ]___________________________________  1.30   1.05 ->  1.24
[ T055: x := space(16) ]______________________________  1.08   0.97 ->  1.11
[ T056: f_prv( c ) ]__________________________________  2.02   1.70 ->  1.18
============================================================================
[   TOTAL   ]_________________________________________ 94.97  89.58 ->  1.06
============================================================================
[ total application time: ]...................................252.88
[ total real time: ]..........................................184.83

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

Reply via email to