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