I send this message three times: send, no reject, never arrive to
Harbour list
This is the first half
David Macias
Przemek:
And here more results ...
Harbour 13017
Below are results using:
------------------------
hbmk2 -m -n -w -es2 -l -kmo -gc3 speedtst.prg
speedtst.exe
hbmk2 -m -n -w -es2 -l -kmo -gc3 -mt speedtst.prg
speedtst.exe
speedtst.exe --thread
speedtst.exe --thread=2 --scale
------------------------
for:
a) gcc433, OMF type, with -DHB_FM_DL_ALLOC
b) gcc433, OMF type, without -DHB_FM_DL_ALLOC
c) gcc335, a.out type, with -DHB_FM_DL_ALLOC
d) gcc335, a.out type, without -DHB_FM_DL_ALLOC
Same hardware used with OpenWatcom, gcc433, gcc335, so comparison
between C compilers are valid in this case
David Macias
*** Start, a) gcc433, OMF type, with -DHB_FM_DL_ALLOC ***
2009.11.25 05:41:35 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) EMX GNU C 4.3.3 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................0.03
[ T002: x := L_N ]..............................................0.03
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.03
[ T005: x := S_N ]..............................................0.06
[ T006: x := S_D ]..............................................0.03
[ T007: x := M->M_C ]...........................................0.06
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.06
[ T010: x := M->P_C ]...........................................0.06
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.06
[ T013: x := F_C ]..............................................0.16
[ T014: x := F_N ]..............................................0.19
[ T015: x := F_D ]..............................................0.06
[ T016: x := o:Args ]...........................................0.16
[ T017: x := o[2] ].............................................0.06
[ T018: round( i / 1000, 2 ) ]..................................0.13
[ T019: str( i / 1000 ) ].......................................0.39
[ T020: val( s ) ]..............................................0.19
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.29
[ T022: dtos( d - i % 10000 ) ].................................0.29
[ T023: eval( { || i % 16 } ) ].................................0.26
[ T024: eval( bc := { || i % 16 } ) ]...........................0.16
[ T025: eval( { |x| x % 16 }, i ) ].............................0.23
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.16
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.26
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.23
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.23
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................2.32
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................2.77
[ T032: x := valtype( x ) + valtype( i ) ].....................0.29
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.52
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.23
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.23
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.26
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.26
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.26
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.23
[ T040: ascan( a, i % 16 ) ]....................................0.19
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................2.00
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.58
[ T043: x := a ]................................................0.00
[ T044: x := {} ]...............................................0.10
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.10
[ T047: f2( c[1...8] ) ]........................................0.06
[ T048: f2( c[1...40000] ) ]....................................0.10
[ T049: f2( @c[1...40000] ) ]...................................0.03
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.10
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.32
[ T052: f2( a ) ]...............................................0.06
[ T053: x := f4() ].............................................1.55
[ T054: x := f5() ].............................................0.19
[ T055: x := space(16) ]........................................0.13
[ T056: f_prv( c ) ]............................................0.23
====================================================================
[ total application time: ]....................................19.00
[ total real time: ]...........................................18.94
2009.11.25 05:42:06 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT) EMX GNU C 4.3.3 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................0.06
[ T002: x := L_N ]..............................................0.03
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.06
[ T005: x := S_N ]..............................................0.06
[ T006: x := S_D ]..............................................0.03
[ T007: x := M->M_C ]...........................................0.10
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.03
[ T010: x := M->P_C ]...........................................0.10
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.06
[ T013: x := F_C ]..............................................0.23
[ T014: x := F_N ]..............................................0.19
[ T015: x := F_D ]..............................................0.10
[ T016: x := o:Args ]...........................................0.16
[ T017: x := o[2] ].............................................0.10
[ T018: round( i / 1000, 2 ) ]..................................0.16
[ T019: str( i / 1000 ) ].......................................0.45
[ T020: val( s ) ]..............................................0.23
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.39
[ T022: dtos( d - i % 10000 ) ].................................0.39
[ T023: eval( { || i % 16 } ) ].................................0.39
[ T024: eval( bc := { || i % 16 } ) ]...........................0.23
[ T025: eval( { |x| x % 16 }, i ) ].............................0.29
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.23
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.35
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.29
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.29
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................3.42
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................4.00
[ T032: x := valtype( x ) + valtype( i ) ].....................0.35
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.61
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.32
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.29
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.32
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.32
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.35
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.29
[ T040: ascan( a, i % 16 ) ]....................................0.26
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................2.71
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.87
[ T043: x := a ]................................................0.06
[ T044: x := {} ]...............................................0.13
[ T045: f0() ]..................................................0.06
[ T046: f1( i ) ]...............................................0.13
[ T047: f2( c[1...8] ) ]........................................0.10
[ T048: f2( c[1...40000] ) ]....................................0.10
[ T049: f2( @c[1...40000] ) ]...................................0.10
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.10
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.42
[ T052: f2( a ) ]...............................................0.13
[ T053: x := f4() ].............................................1.61
[ T054: x := f5() ].............................................0.26
[ T055: x := space(16) ]........................................0.23
[ T056: f_prv( c ) ]............................................0.39
====================================================================
[ total application time: ]....................................24.94
[ total real time: ]...........................................24.84
2009.11.25 05:42:31 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 4.3.3 (32-bit) x86
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................1.97
[ T002: x := L_N ]..............................................1.87
[ T003: x := L_D ]..............................................1.81
[ T004: x := S_C ]..............................................1.84
[ T005: x := S_N ]..............................................1.74
[ T006: x := S_D ]..............................................1.65
[ T007: x := M->M_C ]...........................................2.10
[ T008: x := M->M_N ]...........................................1.52
[ T009: x := M->M_D ]...........................................1.77
[ T010: x := M->P_C ]...........................................1.74
[ T011: x := M->P_N ]...........................................1.71
[ T012: x := M->P_D ]...........................................1.39
[ T013: x := F_C ]..............................................0.77
[ T014: x := F_N ]..............................................0.68
[ T015: x := F_D ]..............................................0.48
[ T016: x := o:Args ]...........................................2.90
[ T017: x := o[2] ].............................................1.65
[ T018: round( i / 1000, 2 ) ]..................................2.35
[ T019: str( i / 1000 ) ].......................................3.48
[ T020: val( s ) ]..............................................2.65
[ T021: val( a [ i % 16 + 1 ] ) ]...............................3.06
[ T022: dtos( d - i % 10000 ) ].................................3.06
[ T023: eval( { || i % 16 } ) ].................................0.61
[ T024: eval( bc := { || i % 16 } ) ]...........................1.35
[ T025: eval( { |x| x % 16 }, i ) ].............................1.00
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................1.29
[ T027: eval( { |x| f1( x ) }, i ) ]............................1.29
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................1.06
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................1.06
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................6.48
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................3.65
[ T032: x := valtype( x ) + valtype( i ) ].....................1.19
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........2.03
[ T034: x := a[ i % 16 + 1 ] == s ].............................1.19
[ T035: x := a[ i % 16 + 1 ] = s ]..............................1.35
[ T036: x := a[ i % 16 + 1 ] >= s ].............................1.74
[ T037: x := a[ i % 16 + 1 ] <= s ].............................2.61
[ T038: x := a[ i % 16 + 1 ] < s ]..............................2.48
[ T039: x := a[ i % 16 + 1 ] > s ]..............................2.71
[ T040: ascan( a, i % 16 ) ]....................................1.81
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................1.48
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....5.35
[ T043: x := a ]................................................0.65
[ T044: x := {} ]...............................................1.45
[ T045: f0() ]..................................................0.81
[ T046: f1( i ) ]...............................................1.29
[ T047: f2( c[1...8] ) ]........................................1.35
[ T048: f2( c[1...40000] ) ]....................................1.58
[ T049: f2( @c[1...40000] ) ]...................................0.68
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.87
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................2.68
[ T052: f2( a ) ]...............................................0.84
[ T053: x := f4() ].............................................2.74
[ T054: x := f5() ].............................................1.65
[ T055: x := space(16) ]........................................1.45
[ T056: f_prv( c ) ]............................................2.06
====================================================================
[ total application time: ].....................................0.03
[ total real time: ]...........................................25.33
2009.11.25 05:42:57 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 4.3.3 (32-bit) x86
THREADS: 2
N_LOOPS: 1000000
1 th. 2 th.
factor
============================================================================
[ T001: x := L_C ]____________________________________ 0.17 0.17 -> 1.00
[ T002: x := L_N ]____________________________________ 0.12 0.12 -> 1.00
[ T003: x := L_D ]____________________________________ 0.12 0.14 -> 0.88
[ T004: x := S_C ]____________________________________ 0.22 0.22 -> 0.99
[ T005: x := S_N ]____________________________________ 0.16 0.16 -> 1.00
[ T006: x := S_D ]____________________________________ 0.16 0.16 -> 1.01
[ T007: x := M->M_C ]_________________________________ 0.22 0.22 -> 1.00
[ T008: x := M->M_N ]_________________________________ 0.17 0.00 -> 0.00
[ T009: x := M->M_D ]_________________________________ 0.52 0.16 -> 3.19
[ T010: x := M->P_C ]_________________________________ 0.19 0.20 -> 0.98
[ T011: x := M->P_N ]_________________________________ 0.00 0.07 -> 0.00
[ T012: x := M->P_D ]_________________________________ 0.17 0.17 -> 1.02
[ T013: x := F_C ]____________________________________ 0.54 0.54 -> 0.99
[ T014: x := F_N ]____________________________________ 0.43 0.42 -> 1.02
[ T015: x := F_D ]____________________________________ 0.24 0.24 -> 1.00
[ T016: x := o:Args ]_________________________________ 0.42 0.42 -> 0.99
[ T017: x := o[2] ]___________________________________ 0.31 0.31 -> 1.02
[ T018: round( i / 1000, 2 ) ]________________________ 0.39 0.39 -> 0.99
[ T019: str( i / 1000 ) ]_____________________________ 1.14 1.14 -> 1.00
[ T020: val( s ) ]____________________________________ 0.53 0.52 -> 1.01
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 0.86 0.86 -> 1.00
[ T022: dtos( d - i % 10000 ) ]_______________________ 0.82 0.82 -> 1.00
[ T023: eval( { || i % 16 } ) ]_______________________ 0.87 0.89 -> 0.98
[ T024: eval( bc := { || i % 16 } ) ]_________________ 0.54 0.52 -> 1.05
[ T025: eval( { |x| x % 16 }, i ) ]___________________ 0.67 0.68 -> 1.00
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 0.55 0.54 -> 1.01
[ T027: eval( { |x| f1( x ) }, i ) ]__________________ 0.79 0.79 -> 1.00
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 0.66 0.66 -> 0.99
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 0.66 0.65 -> 1.01
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 6.87 7.06 -> 0.97
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 7.96 8.24 -> 0.97
[ T032: x := valtype( x ) + valtype( i ) ]___________ 0.85 0.86 -> 0.99
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 1.41 1.41 -> 1.00
[ T034: x := a[ i % 16 + 1 ] == s ]___________________ 0.66 0.66 -> 1.00
[ T035: x := a[ i % 16 + 1 ] = s ]____________________ 0.69 0.69 -> 1.01
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 0.69 0.69 -> 1.00
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 0.72 0.71 -> 1.01
[ T038: x := a[ i % 16 + 1 ] < s ]____________________ 0.72 0.72 -> 1.00
[ T039: x := a[ i % 16 + 1 ] > s ]____________________ 0.70 0.70 -> 1.00
[ T040: ascan( a, i % 16 ) ]__________________________ 0.53 0.53 -> 1.01
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 5.33 5.34 -> 1.00
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 1.85 1.85 -> 1.00
[ T043: x := a ]______________________________________ 0.17 0.17 -> 1.01
[ T044: x := {} ]_____________________________________ 0.34 0.34 -> 0.98
[ T045: f0() ]________________________________________ 0.19 0.19 -> 1.02
[ T046: f1( i ) ]_____________________________________ 0.28 0.29 -> 0.99
[ T047: f2( c[1...8] ) ]______________________________ 0.28 0.28 -> 1.01
[ T048: f2( c[1...40000] ) ]__________________________ 0.28 0.28 -> 0.99
[ T049: f2( @c[1...40000] ) ]_________________________ 0.22 0.22 -> 1.00
[ T050: f2( @c[1...40000] ), c2 := c ]________________ 0.33 0.33 -> 0.99
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 0.86 0.86 -> 1.00
[ T052: f2( a ) ]_____________________________________ 0.31 0.30 -> 1.03
[ T053: x := f4() ]___________________________________ 3.30 3.29 -> 1.00
[ T054: x := f5() ]___________________________________ 0.61 0.62 -> 1.00
[ T055: x := space(16) ]______________________________ 0.51 0.50 -> 1.03
[ T056: f_prv( c ) ]__________________________________ 0.93 0.99 -> 0.94
============================================================================
[ TOTAL ]_________________________________________ 50.25 50.31 -> 1.00
============================================================================
[ total application time: ]....................................50.58
[ total real time: ]..........................................100.74
*** End, a) gcc433, OMF type, with -DHB_FM_DL_ALLOC ***
*** Start b) gcc433, OMF type, without -DHB_FM_DL_ALLOC ***
2009.11.25 06:38:49 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) EMX GNU C 4.3.3 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.00
====================================================================
[ T001: x := L_C ]..............................................0.06
[ T002: x := L_N ]..............................................0.03
[ T003: x := L_D ]..............................................0.06
[ T004: x := S_C ]..............................................0.10
[ T005: x := S_N ]..............................................0.06
[ T006: x := S_D ]..............................................0.10
[ T007: x := M->M_C ]...........................................0.06
[ T008: x := M->M_N ]...........................................0.06
[ T009: x := M->M_D ]...........................................0.06
[ T010: x := M->P_C ]...........................................0.06
[ T011: x := M->P_N ]...........................................0.10
[ T012: x := M->P_D ]...........................................0.06
[ T013: x := F_C ]..............................................0.35
[ T014: x := F_N ]..............................................0.19
[ T015: x := F_D ]..............................................0.10
[ T016: x := o:Args ]...........................................0.13
[ T017: x := o[2] ].............................................0.10
[ T018: round( i / 1000, 2 ) ]..................................0.19
[ T019: str( i / 1000 ) ].......................................0.55
[ T020: val( s ) ]..............................................0.19
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.35
[ T022: dtos( d - i % 10000 ) ].................................0.48
[ T023: eval( { || i % 16 } ) ].................................0.61
[ T024: eval( bc := { || i % 16 } ) ]...........................0.19
[ T025: eval( { |x| x % 16 }, i ) ].............................0.42
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.23
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.45
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.26
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.29
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................3.35
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................4.16
[ T032: x := valtype( x ) + valtype( i ) ].....................0.45
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.68
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.23
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.26
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.29
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.26
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.29
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.29
[ T040: ascan( a, i % 16 ) ]....................................0.19
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................2.48
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....1.03
[ T043: x := a ]................................................0.06
[ T044: x := {} ]...............................................0.26
[ T045: f0() ]..................................................0.06
[ T046: f1( i ) ]...............................................0.13
[ T047: f2( c[1...8] ) ]........................................0.10
[ T048: f2( c[1...40000] ) ]....................................0.10
[ T049: f2( @c[1...40000] ) ]...................................0.10
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.13
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.32
[ T052: f2( a ) ]...............................................0.10
[ T053: x := f4() ].............................................1.74
[ T054: x := f5() ].............................................0.35
[ T055: x := space(16) ]........................................0.35
[ T056: f_prv( c ) ]............................................0.35
====================================================================
[ total application time: ]....................................24.26
[ total real time: ]...........................................24.16
2009.11.25 06:39:27 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT) EMX GNU C 4.3.3 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................0.06
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.10
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.06
[ T007: x := M->M_C ]...........................................0.06
[ T008: x := M->M_N ]...........................................0.06
[ T009: x := M->M_D ]...........................................0.06
[ T010: x := M->P_C ]...........................................0.06
[ T011: x := M->P_N ]...........................................0.06
[ T012: x := M->P_D ]...........................................0.06
[ T013: x := F_C ]..............................................0.32
[ T014: x := F_N ]..............................................0.19
[ T015: x := F_D ]..............................................0.10
[ T016: x := o:Args ]...........................................0.16
[ T017: x := o[2] ].............................................0.13
[ T018: round( i / 1000, 2 ) ]..................................0.13
[ T019: str( i / 1000 ) ].......................................0.58
[ T020: val( s ) ]..............................................0.23
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.39
[ T022: dtos( d - i % 10000 ) ].................................0.45
[ T023: eval( { || i % 16 } ) ].................................0.68
[ T024: eval( bc := { || i % 16 } ) ]...........................0.23
[ T025: eval( { |x| x % 16 }, i ) ].............................0.42
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.26
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.45
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.29
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.29
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................4.10
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................4.97
[ T032: x := valtype( x ) + valtype( i ) ].....................0.45
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.74
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.29
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.29
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.32
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.32
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.32
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.29
[ T040: ascan( a, i % 16 ) ]....................................0.23
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................2.94
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....1.19
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.26
[ T045: f0() ]..................................................0.06
[ T046: f1( i ) ]...............................................0.10
[ T047: f2( c[1...8] ) ]........................................0.13
[ T048: f2( c[1...40000] ) ]....................................0.10
[ T049: f2( @c[1...40000] ) ]...................................0.10
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.13
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.39
[ T052: f2( a ) ]...............................................0.10
[ T053: x := f4() ].............................................1.74
[ T054: x := f5() ].............................................0.32
[ T055: x := space(16) ]........................................0.32
[ T056: f_prv( c ) ]............................................0.45
====================================================================
[ total application time: ]....................................28.52
[ total real time: ]...........................................28.40
2009.11.25 06:39:55 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 4.3.3 (32-bit) x86
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.06
====================================================================
[ T001: x := L_C ]..............................................1.48
[ T002: x := L_N ]..............................................1.61
[ T003: x := L_D ]..............................................1.58
[ T004: x := S_C ]..............................................1.42
[ T005: x := S_N ]..............................................1.35
[ T006: x := S_D ]..............................................0.90
[ T007: x := M->M_C ]...........................................1.29
[ T008: x := M->M_N ]...........................................1.19
[ T009: x := M->M_D ]...........................................1.06
[ T010: x := M->P_C ]...........................................1.16
[ T011: x := M->P_N ]...........................................0.97
[ T012: x := M->P_D ]...........................................0.87
[ T013: x := F_C ]..............................................0.00
[ T014: x := F_N ]..............................................0.68
[ T015: x := F_D ]..............................................0.97
[ T016: x := o:Args ]...........................................4.42
[ T017: x := o[2] ].............................................1.90
[ T018: round( i / 1000, 2 ) ]..................................4.42
[ T019: str( i / 1000 ) ].......................................4.39
[ T020: val( s ) ]..............................................4.94
[ T021: val( a [ i % 16 + 1 ] ) ]...............................5.52
[ T022: dtos( d - i % 10000 ) ].................................5.74
[ T023: eval( { || i % 16 } ) ].................................2.06
[ T024: eval( bc := { || i % 16 } ) ]...........................1.81
[ T025: eval( { |x| x % 16 }, i ) ].............................1.74
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................6.90
[ T027: eval( { |x| f1( x ) }, i ) ]............................1.55
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................4.90
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................3.29
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................7.16
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................3.55
[ T032: x := valtype( x ) + valtype( i ) ].....................5.10
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........3.45
[ T034: x := a[ i % 16 + 1 ] == s ].............................4.87
[ T035: x := a[ i % 16 + 1 ] = s ]..............................5.10
[ T036: x := a[ i % 16 + 1 ] >= s ].............................4.90
[ T037: x := a[ i % 16 + 1 ] <= s ].............................5.00
[ T038: x := a[ i % 16 + 1 ] < s ]..............................5.06
[ T039: x := a[ i % 16 + 1 ] > s ]..............................4.45
[ T040: ascan( a, i % 16 ) ]....................................3.84
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................6.48
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....3.74
[ T043: x := a ]................................................3.77
[ T044: x := {} ]...............................................1.26
[ T045: f0() ]..................................................2.32
[ T046: f1( i ) ]...............................................3.68
[ T047: f2( c[1...8] ) ]........................................4.26
[ T048: f2( c[1...40000] ) ]....................................3.39
[ T049: f2( @c[1...40000] ) ]...................................2.32
[ T050: f2( @c[1...40000] ), c2 := c ]..........................2.39
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................4.87
[ T052: f2( a ) ]...............................................3.03
[ T053: x := f4() ].............................................2.26
[ T054: x := f5() ].............................................4.00
[ T055: x := space(16) ]........................................3.48
[ T056: f_prv( c ) ]............................................3.26
====================================================================
[ total application time: ].....................................0.06
[ total real time: ]...........................................28.93
2009.11.25 06:40:25 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 4.3.3 (32-bit) x86
THREADS: 2
N_LOOPS: 1000000
1 th. 2 th.
factor
============================================================================
[ T001: x := L_C ]____________________________________ 0.17 0.17 -> 1.00
[ T002: x := L_N ]____________________________________ 0.12 0.12 -> 1.01
[ T003: x := L_D ]____________________________________ 0.13 0.12 -> 1.03
[ T004: x := S_C ]____________________________________ 0.22 0.22 -> 1.00
[ T005: x := S_N ]____________________________________ 0.16 0.16 -> 1.00
[ T006: x := S_D ]____________________________________ 0.16 0.16 -> 1.01
[ T007: x := M->M_C ]_________________________________ 0.23 0.24 -> 0.97
[ T008: x := M->M_N ]_________________________________ 0.17 0.17 -> 1.00
[ T009: x := M->M_D ]_________________________________ 0.17 0.18 -> 0.91
[ T010: x := M->P_C ]_________________________________ 0.20 0.20 -> 1.01
[ T011: x := M->P_N ]_________________________________ 0.17 0.17 -> 1.00
[ T012: x := M->P_D ]_________________________________ 0.17 0.17 -> 1.00
[ T013: x := F_C ]____________________________________ 0.74 0.74 -> 1.00
[ T014: x := F_N ]____________________________________ 0.42 0.42 -> 1.00
[ T015: x := F_D ]____________________________________ 0.23 0.23 -> 1.00
[ T016: x := o:Args ]_________________________________ 0.40 0.39 -> 1.03
[ T017: x := o[2] ]___________________________________ 0.31 0.32 -> 1.00
[ T018: round( i / 1000, 2 ) ]________________________ 0.38 0.40 -> 0.95
[ T019: str( i / 1000 ) ]_____________________________ 1.30 1.30 -> 1.00
[ T020: val( s ) ]____________________________________ 0.52 0.52 -> 1.00
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 0.85 0.85 -> 1.00
[ T022: dtos( d - i % 10000 ) ]_______________________ 1.05 1.05 -> 1.00
[ T023: eval( { || i % 16 } ) ]_______________________ 1.47 1.45 -> 1.01
[ T024: eval( bc := { || i % 16 } ) ]_________________ 0.52 0.52 -> 0.99
[ T025: eval( { |x| x % 16 }, i ) ]___________________ 0.98 0.96 -> 1.02
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 0.54 0.54 -> 0.99
[ T027: eval( { |x| f1( x ) }, i ) ]__________________ 1.04 1.03 -> 1.01
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 0.65 0.65 -> 1.00
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 0.65 0.65 -> 1.00
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 8.21 8.56 -> 0.96
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 9.93 10.42 -> 0.95
[ T032: x := valtype( x ) + valtype( i ) ]___________ 1.00 1.00 -> 1.00
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 1.61 1.61 -> 1.00
[ T034: x := a[ i % 16 + 1 ] == s ]___________________ 0.67 0.67 -> 1.00
[ T035: x := a[ i % 16 + 1 ] = s ]____________________ 0.71 0.69 -> 1.02
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 0.71 0.71 -> 1.00
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 0.72 0.72 -> 1.00
[ T038: x := a[ i % 16 + 1 ] < s ]____________________ 0.69 0.71 -> 0.97
[ T039: x := a[ i % 16 + 1 ] > s ]____________________ 0.72 0.72 -> 1.00
[ T040: ascan( a, i % 16 ) ]__________________________ 0.54 0.54 -> 1.00
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 6.11 6.14 -> 1.00
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 2.43 2.42 -> 1.00
[ T043: x := a ]______________________________________ 0.18 0.18 -> 1.02
[ T044: x := {} ]_____________________________________ 0.59 0.57 -> 1.03
[ T045: f0() ]________________________________________ 0.00 0.13 -> 0.00
[ T046: f1( i ) ]_____________________________________ 0.27 0.27 -> 0.99
[ T047: f2( c[1...8] ) ]______________________________ 0.28 0.28 -> 1.00
[ T048: f2( c[1...40000] ) ]__________________________ 0.28 0.28 -> 1.00
[ T049: f2( @c[1...40000] ) ]_________________________ 0.33 0.21 -> 1.56
[ T050: f2( @c[1...40000] ), c2 := c ]________________ 0.35 0.35 -> 1.01
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 0.86 0.86 -> 1.00
[ T052: f2( a ) ]_____________________________________ 0.29 0.29 -> 1.00
[ T053: x := f4() ]___________________________________ 3.50 3.47 -> 1.01
[ T054: x := f5() ]___________________________________ 0.73 0.74 -> 1.00
[ T055: x := space(16) ]______________________________ 0.69 0.70 -> 0.99
[ T056: f_prv( c ) ]__________________________________ 1.00 1.00 -> 1.00
============================================================================
[ TOTAL ]_________________________________________ 57.50 58.33 -> 0.99
============================================================================
[ total application time: ]....................................58.55
[ total real time: ]..........................................115.96
*** End b) gcc433, OMF type, without -DHB_FM_DL_ALLOC ***
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour