Przemek:
more and 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:
e) gcc335, OMF type, with -DHB_FM_DL_ALLOC
f) gcc335, OMF 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, e) gcc335, OMF type, with -DHB_FM_DL_ALLOC ***
2009.11.26 03:26:06 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) EMX GNU C 3.3.5 (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.00
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.03
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.00
[ T007: x := M->M_C ]...........................................0.03
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.03
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.03
[ T013: x := F_C ]..............................................0.10
[ T014: x := F_N ]..............................................0.13
[ T015: x := F_D ]..............................................0.06
[ T016: x := o:Args ]...........................................0.13
[ T017: x := o[2] ].............................................0.06
[ T018: round( i / 1000, 2 ) ]..................................0.13
[ T019: str( i / 1000 ) ].......................................0.55
[ T020: val( s ) ]..............................................0.16
[ 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.19
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.16
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.23
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.16
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.19
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................2.10
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................2.23
[ T032: x := valtype( x ) + valtype( i ) ].....................0.29
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.55
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.19
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.26
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.23
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.23
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.23
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.23
[ T040: ascan( a, i % 16 ) ]....................................0.26
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................1.97
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.55
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.06
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.06
[ T047: f2( c[1...8] ) ]........................................0.06
[ T048: f2( c[1...40000] ) ]....................................0.06
[ T049: f2( @c[1...40000] ) ]...................................0.03
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.06
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.19
[ T052: f2( a ) ]...............................................0.06
[ T053: x := f4() ].............................................0.55
[ T054: x := f5() ].............................................0.16
[ T055: x := space(16) ]........................................0.10
[ T056: f_prv( c ) ]............................................0.26
====================================================================
[ total application time: ]....................................16.48
[ total real time: ]...........................................16.46
2009.11.26 03:26:33 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT) EMX GNU C 3.3.5 (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.06
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.03
[ T007: x := M->M_C ]...........................................0.10
[ T008: x := M->M_N ]...........................................0.06
[ T009: x := M->M_D ]...........................................0.03
[ T010: x := M->P_C ]...........................................0.06
[ T011: x := M->P_N ]...........................................0.06
[ T012: x := M->P_D ]...........................................0.03
[ T013: x := F_C ]..............................................0.19
[ T014: x := F_N ]..............................................0.13
[ T015: x := F_D ]..............................................0.10
[ T016: x := o:Args ]...........................................0.19
[ T017: x := o[2] ].............................................0.13
[ T018: round( i / 1000, 2 ) ]..................................0.16
[ T019: str( i / 1000 ) ].......................................0.61
[ T020: val( s ) ]..............................................0.19
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.32
[ T022: dtos( d - i % 10000 ) ].................................0.39
[ T023: eval( { || i % 16 } ) ].................................0.45
[ T024: eval( bc := { || i % 16 } ) ]...........................0.23
[ T025: eval( { |x| x % 16 }, i ) ].............................0.32
[ 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.10
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................3.32
[ T032: x := valtype( x ) + valtype( i ) ].....................0.42
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.71
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.29
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.32
[ 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.32
[ 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.03
[ T044: x := {} ]...............................................0.16
[ T045: f0() ]..................................................0.06
[ T046: f1( i ) ]...............................................0.10
[ 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.45
[ T052: f2( a ) ]...............................................0.13
[ T053: x := f4() ].............................................0.58
[ T054: x := f5() ].............................................0.23
[ T055: x := space(16) ]........................................0.19
[ T056: f_prv( c ) ]............................................0.42
====================================================================
[ total application time: ]....................................23.19
[ total real time: ]...........................................23.23
2009.11.26 03:26:56 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 3.3.5 (32-bit) x86
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................1.19
[ T002: x := L_N ]..............................................0.65
[ T003: x := L_D ]..............................................1.06
[ T004: x := S_C ]..............................................1.42
[ T005: x := S_N ]..............................................1.68
[ T006: x := S_D ]..............................................0.58
[ T007: x := M->M_C ]...........................................1.84
[ T008: x := M->M_N ]...........................................0.97
[ T009: x := M->M_D ]...........................................1.35
[ T010: x := M->P_C ]...........................................1.55
[ T011: x := M->P_N ]...........................................1.52
[ T012: x := M->P_D ]...........................................1.48
[ T013: x := F_C ]..............................................0.00
[ T014: x := F_N ]..............................................0.29
[ T015: x := F_D ]..............................................0.23
[ T016: x := o:Args ]...........................................1.97
[ T017: x := o[2] ].............................................1.68
[ T018: round( i / 1000, 2 ) ]..................................2.35
[ T019: str( i / 1000 ) ].......................................2.87
[ T020: val( s ) ]..............................................2.06
[ T021: val( a [ i % 16 + 1 ] ) ]...............................2.39
[ T022: dtos( d - i % 10000 ) ].................................2.48
[ T023: eval( { || i % 16 } ) ].................................0.71
[ T024: eval( bc := { || i % 16 } ) ]...........................1.39
[ T025: eval( { |x| x % 16 }, i ) ].............................1.26
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................1.19
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.77
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................1.16
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................1.06
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................5.65
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................2.94
[ T032: x := valtype( x ) + valtype( i ) ].....................0.35
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........1.06
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.90
[ T035: x := a[ i % 16 + 1 ] = s ]..............................1.03
[ T036: x := a[ i % 16 + 1 ] >= s ].............................1.19
[ T037: x := a[ i % 16 + 1 ] <= s ].............................1.16
[ T038: x := a[ i % 16 + 1 ] < s ]..............................1.55
[ T039: x := a[ i % 16 + 1 ] > s ]..............................1.87
[ T040: ascan( a, i % 16 ) ]....................................1.84
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................1.81
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....3.81
[ T043: x := a ]................................................0.26
[ T044: x := {} ]...............................................1.06
[ T045: f0() ]..................................................0.32
[ T046: f1( i ) ]...............................................0.58
[ T047: f2( c[1...8] ) ]........................................1.29
[ T048: f2( c[1...40000] ) ]....................................0.81
[ T049: f2( @c[1...40000] ) ]...................................0.58
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.68
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................1.77
[ T052: f2( a ) ]...............................................0.81
[ T053: x := f4() ].............................................1.94
[ T054: x := f5() ].............................................0.94
[ T055: x := space(16) ]........................................0.35
[ T056: f_prv( c ) ]............................................1.19
====================================================================
[ total application time: ].....................................0.10
[ total real time: ]...........................................22.15
2009.11.26 03:27:19 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 3.3.5 (32-bit) x86
THREADS: 2
N_LOOPS: 1000000
1 th. 2 th.
factor
============================================================================
[ T001: x := L_C ]____________________________________ 0.14 0.13 -> 1.02
[ T002: x := L_N ]____________________________________ 0.09 0.09 -> 1.00
[ T003: x := L_D ]____________________________________ 0.09 0.09 -> 1.00
[ T004: x := S_C ]____________________________________ 0.17 0.17 -> 1.01
[ T005: x := S_N ]____________________________________ 0.10 0.10 -> 1.01
[ T006: x := S_D ]____________________________________ 0.10 0.11 -> 0.97
[ T007: x := M->M_C ]_________________________________ 0.21 0.20 -> 1.01
[ T008: x := M->M_N ]_________________________________ 0.14 0.14 -> 1.01
[ T009: x := M->M_D ]_________________________________ 0.14 0.14 -> 0.99
[ T010: x := M->P_C ]_________________________________ 0.17 0.17 -> 1.01
[ T011: x := M->P_N ]_________________________________ 0.14 0.14 -> 1.01
[ T012: x := M->P_D ]_________________________________ 0.14 0.14 -> 1.01
[ T013: x := F_C ]____________________________________ 0.40 0.40 -> 0.99
[ T014: x := F_N ]____________________________________ 0.31 0.31 -> 1.00
[ T015: x := F_D ]____________________________________ 0.20 0.20 -> 1.01
[ T016: x := o:Args ]_________________________________ 0.35 0.35 -> 1.00
[ T017: x := o[2] ]___________________________________ 0.25 0.25 -> 1.00
[ T018: round( i / 1000, 2 ) ]________________________ 0.41 0.41 -> 1.00
[ T019: str( i / 1000 ) ]_____________________________ 1.36 1.36 -> 1.00
[ T020: val( s ) ]____________________________________ 0.42 0.42 -> 1.00
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 0.71 0.71 -> 1.00
[ T022: dtos( d - i % 10000 ) ]_______________________ 0.72 0.73 -> 1.00
[ T023: eval( { || i % 16 } ) ]_______________________ 0.96 0.95 -> 1.01
[ T024: eval( bc := { || i % 16 } ) ]_________________ 0.47 0.47 -> 1.00
[ T025: eval( { |x| x % 16 }, i ) ]___________________ 0.68 0.68 -> 1.00
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 0.45 0.45 -> 1.00
[ T027: eval( { |x| f1( x ) }, i ) ]__________________ 0.71 0.70 -> 1.01
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 0.51 0.51 -> 1.00
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 0.51 0.52 -> 0.99
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 6.19 6.79 -> 0.91
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 6.57 6.92 -> 0.95
[ T032: x := valtype( x ) + valtype( i ) ]___________ 0.79 0.79 -> 1.00
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 1.47 1.46 -> 1.00
[ T034: x := a[ i % 16 + 1 ] == s ]___________________ 0.59 0.59 -> 1.00
[ T035: x := a[ i % 16 + 1 ] = s ]____________________ 0.63 0.63 -> 1.00
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 0.62 0.62 -> 1.01
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 0.63 0.63 -> 1.00
[ T038: x := a[ i % 16 + 1 ] < s ]____________________ 0.63 0.62 -> 1.00
[ T039: x := a[ i % 16 + 1 ] > s ]____________________ 0.62 0.63 -> 1.00
[ T040: ascan( a, i % 16 ) ]__________________________ 0.62 0.62 -> 1.00
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 5.23 5.23 -> 1.00
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 1.69 1.70 -> 1.00
[ T043: x := a ]______________________________________ 0.15 0.15 -> 1.02
[ T044: x := {} ]_____________________________________ 0.31 0.31 -> 0.99
[ T045: f0() ]________________________________________ 0.15 0.15 -> 1.01
[ T046: f1( i ) ]_____________________________________ 0.21 0.21 -> 0.99
[ T047: f2( c[1...8] ) ]______________________________ 0.25 0.26 -> 1.00
[ T048: f2( c[1...40000] ) ]__________________________ 0.26 0.26 -> 1.00
[ T049: f2( @c[1...40000] ) ]_________________________ 0.19 0.19 -> 0.99
[ T050: f2( @c[1...40000] ), c2 := c ]________________ 0.28 0.28 -> 1.00
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 0.77 0.77 -> 1.00
[ T052: f2( a ) ]_____________________________________ 0.27 0.27 -> 1.00
[ T053: x := f4() ]___________________________________ 1.19 1.19 -> 1.00
[ T054: x := f5() ]___________________________________ 0.48 0.49 -> 0.99
[ T055: x := space(16) ]______________________________ 0.39 0.40 -> 0.97
[ T056: f_prv( c ) ]__________________________________ 0.83 0.83 -> 1.00
============================================================================
[ TOTAL ]_________________________________________ 43.02 43.99 -> 0.98
============================================================================
[ total application time: ].....................................0.06
[ total real time: ]...........................................87.19
*** End, e) gcc335, OMF type, with -DHB_FM_DL_ALLOC ***
*** Start f) gcc335, OMF type, without -DHB_FM_DL_ALLOC ***
2009.11.26 04:53:57 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) EMX GNU C 3.3.5 (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.00
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.03
[ T005: x := S_N ]..............................................0.00
[ T006: x := S_D ]..............................................0.03
[ T007: x := M->M_C ]...........................................0.03
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.03
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.03
[ T013: x := F_C ]..............................................0.26
[ T014: x := F_N ]..............................................0.13
[ T015: x := F_D ]..............................................0.06
[ T016: x := o:Args ]...........................................0.10
[ T017: x := o[2] ].............................................0.06
[ T018: round( i / 1000, 2 ) ]..................................0.16
[ T019: str( i / 1000 ) ].......................................0.68
[ T020: val( s ) ]..............................................0.16
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.29
[ T022: dtos( d - i % 10000 ) ].................................0.45
[ T023: eval( { || i % 16 } ) ].................................0.58
[ T024: eval( bc := { || i % 16 } ) ]...........................0.13
[ T025: eval( { |x| x % 16 }, i ) ].............................0.35
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.13
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.39
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.16
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.16
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................3.16
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................3.58
[ T032: x := valtype( x ) + valtype( i ) ].....................0.42
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.71
[ 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.23
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.26
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.23
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.23
[ T040: ascan( a, i % 16 ) ]....................................0.26
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................2.39
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.97
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.19
[ T045: f0() ]..................................................0.06
[ T046: f1( i ) ]...............................................0.06
[ T047: f2( c[1...8] ) ]........................................0.06
[ T048: f2( c[1...40000] ) ]....................................0.10
[ T049: f2( @c[1...40000] ) ]...................................0.06
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.06
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.23
[ T052: f2( a ) ]...............................................0.06
[ T053: x := f4() ].............................................0.68
[ T054: x := f5() ].............................................0.29
[ T055: x := space(16) ]........................................0.26
[ T056: f_prv( c ) ]............................................0.42
====================================================================
[ total application time: ]....................................22.06
[ total real time: ]...........................................22.07
2009.11.26 04:54:33 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT) EMX GNU C 3.3.5 (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.00
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.06
[ T005: x := S_N ]..............................................0.03
[ 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.03
[ 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.26
[ T014: x := F_N ]..............................................0.13
[ T015: x := F_D ]..............................................0.10
[ T016: x := o:Args ]...........................................0.13
[ T017: x := o[2] ].............................................0.10
[ T018: round( i / 1000, 2 ) ]..................................0.16
[ T019: str( i / 1000 ) ].......................................0.71
[ T020: val( s ) ]..............................................0.16
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.32
[ T022: dtos( d - i % 10000 ) ].................................0.45
[ T023: eval( { || i % 16 } ) ].................................0.71
[ T024: eval( bc := { || i % 16 } ) ]...........................0.23
[ T025: eval( { |x| x % 16 }, i ) ].............................0.39
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.19
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.42
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.23
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.23
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................3.87
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................4.35
[ T032: x := valtype( x ) + valtype( i ) ].....................0.48
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.77
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.26
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.29
[ 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.26
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................2.90
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....1.13
[ T043: x := a ]................................................0.06
[ T044: x := {} ]...............................................0.26
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.06
[ T047: f2( c[1...8] ) ]........................................0.10
[ T048: f2( c[1...40000] ) ]....................................0.10
[ T049: f2( @c[1...40000] ) ]...................................0.06
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.13
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.35
[ T052: f2( a ) ]...............................................0.10
[ T053: x := f4() ].............................................0.71
[ T054: x := f5() ].............................................0.32
[ T055: x := space(16) ]........................................0.29
[ T056: f_prv( c ) ]............................................0.55
====================================================================
[ total application time: ]....................................26.13
[ total real time: ]...........................................26.06
2009.11.26 04:54:59 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 3.3.5 (32-bit) x86
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................1.71
[ T002: x := L_N ]..............................................0.13
[ T003: x := L_D ]..............................................0.45
[ T004: x := S_C ]..............................................1.42
[ T005: x := S_N ]..............................................1.19
[ T006: x := S_D ]..............................................1.19
[ T007: x := M->M_C ]...........................................1.61
[ T008: x := M->M_N ]...........................................1.58
[ T009: x := M->M_D ]...........................................1.42
[ T010: x := M->P_C ]...........................................2.13
[ T011: x := M->P_N ]...........................................1.19
[ T012: x := M->P_D ]...........................................1.00
[ T013: x := F_C ]..............................................0.00
[ T014: x := F_N ]..............................................0.26
[ T015: x := F_D ]..............................................0.16
[ T016: x := o:Args ]...........................................2.71
[ T017: x := o[2] ].............................................1.52
[ T018: round( i / 1000, 2 ) ]..................................3.06
[ T019: str( i / 1000 ) ].......................................4.45
[ T020: val( s ) ]..............................................3.58
[ T021: val( a [ i % 16 + 1 ] ) ]...............................3.10
[ T022: dtos( d - i % 10000 ) ].................................3.26
[ T023: eval( { || i % 16 } ) ].................................1.97
[ T024: eval( bc := { || i % 16 } ) ]...........................3.87
[ T025: eval( { |x| x % 16 }, i ) ].............................2.26
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................3.29
[ T027: eval( { |x| f1( x ) }, i ) ]............................1.81
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................2.77
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................3.00
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................6.13
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................3.13
[ T032: x := valtype( x ) + valtype( i ) ].....................2.06
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........2.45
[ T034: x := a[ i % 16 + 1 ] == s ].............................1.94
[ T035: x := a[ i % 16 + 1 ] = s ]..............................2.58
[ T036: x := a[ i % 16 + 1 ] >= s ].............................2.26
[ T037: x := a[ i % 16 + 1 ] <= s ].............................1.26
[ T038: x := a[ i % 16 + 1 ] < s ]..............................4.03
[ T039: x := a[ i % 16 + 1 ] > s ]..............................1.45
[ T040: ascan( a, i % 16 ) ]....................................1.16
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................5.19
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....2.68
[ T043: x := a ]................................................1.26
[ T044: x := {} ]...............................................1.97
[ T045: f0() ]..................................................2.58
[ T046: f1( i ) ]...............................................2.32
[ T047: f2( c[1...8] ) ]........................................1.74
[ T048: f2( c[1...40000] ) ]....................................1.16
[ T049: f2( @c[1...40000] ) ]...................................0.81
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.39
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................4.55
[ T052: f2( a ) ]...............................................2.48
[ T053: x := f4() ].............................................4.23
[ T054: x := f5() ].............................................1.97
[ T055: x := space(16) ]........................................2.16
[ T056: f_prv( c ) ]............................................2.94
====================================================================
[ total application time: ].....................................0.26
[ total real time: ]...........................................26.25
2009.11.26 04:55:26 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13017) (MT)+ EMX GNU C 3.3.5 (32-bit) x86
THREADS: 2
N_LOOPS: 1000000
1 th. 2 th.
factor
============================================================================
[ T001: x := L_C ]____________________________________ 0.15 0.13 -> 1.10
[ T002: x := L_N ]____________________________________ 0.08 0.08 -> 0.98
[ T003: x := L_D ]____________________________________ 0.08 0.08 -> 1.02
[ T004: x := S_C ]____________________________________ 0.18 0.17 -> 1.10
[ T005: x := S_N ]____________________________________ 0.10 0.10 -> 1.01
[ T006: x := S_D ]____________________________________ 0.10 0.10 -> 0.99
[ T007: x := M->M_C ]_________________________________ 0.20 0.20 -> 1.00
[ T008: x := M->M_N ]_________________________________ 0.13 0.13 -> 0.99
[ T009: x := M->M_D ]_________________________________ 0.14 0.14 -> 0.99
[ T010: x := M->P_C ]_________________________________ 0.17 0.17 -> 1.01
[ T011: x := M->P_N ]_________________________________ 0.14 0.14 -> 0.99
[ T012: x := M->P_D ]_________________________________ 0.14 0.14 -> 1.00
[ T013: x := F_C ]____________________________________ 0.60 0.60 -> 0.99
[ T014: x := F_N ]____________________________________ 0.30 0.30 -> 1.01
[ T015: x := F_D ]____________________________________ 0.20 0.19 -> 1.02
[ T016: x := o:Args ]_________________________________ 0.35 0.35 -> 1.01
[ T017: x := o[2] ]___________________________________ 0.26 0.26 -> 1.00
[ T018: round( i / 1000, 2 ) ]________________________ 0.43 0.43 -> 1.00
[ T019: str( i / 1000 ) ]_____________________________ 1.53 1.53 -> 1.00
[ T020: val( s ) ]____________________________________ 0.41 0.41 -> 1.00
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 0.71 0.71 -> 1.00
[ T022: dtos( d - i % 10000 ) ]_______________________ 0.98 0.98 -> 1.00
[ T023: eval( { || i % 16 } ) ]_______________________ 1.45 1.47 -> 0.98
[ T024: eval( bc := { || i % 16 } ) ]_________________ 0.50 0.49 -> 1.01
[ T025: eval( { |x| x % 16 }, i ) ]___________________ 0.95 0.95 -> 1.00
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 0.47 0.47 -> 1.00
[ T027: eval( { |x| f1( x ) }, i ) ]__________________ 0.89 0.91 -> 0.97
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 0.51 0.51 -> 1.00
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 0.52 0.52 -> 1.01
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 7.77 8.28 -> 0.94
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 8.62 8.95 -> 0.96
[ T032: x := valtype( x ) + valtype( i ) ]___________ 0.98 0.98 -> 1.00
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 1.70 1.69 -> 1.00
[ T034: x := a[ i % 16 + 1 ] == s ]___________________ 0.62 0.62 -> 1.00
[ T035: x := a[ i % 16 + 1 ] = s ]____________________ 0.64 0.64 -> 1.00
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 0.64 0.64 -> 1.00
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 0.64 0.64 -> 1.00
[ T038: x := a[ i % 16 + 1 ] < s ]____________________ 0.64 0.64 -> 1.00
[ T039: x := a[ i % 16 + 1 ] > s ]____________________ 0.64 0.64 -> 1.00
[ T040: ascan( a, i % 16 ) ]__________________________ 0.61 0.62 -> 1.00
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 5.74 5.76 -> 1.00
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 2.33 2.32 -> 1.01
[ T043: x := a ]______________________________________ 0.14 0.15 -> 0.97
[ T044: x := {} ]_____________________________________ 0.57 0.56 -> 1.01
[ T045: f0() ]________________________________________ 0.15 0.15 -> 1.01
[ T046: f1( i ) ]_____________________________________ 0.21 0.21 -> 1.00
[ T047: f2( c[1...8] ) ]______________________________ 0.24 0.24 -> 1.00
[ T048: f2( c[1...40000] ) ]__________________________ 0.25 0.24 -> 1.01
[ T049: f2( @c[1...40000] ) ]_________________________ 0.19 0.19 -> 0.98
[ T050: f2( @c[1...40000] ), c2 := c ]________________ 0.28 0.28 -> 1.01
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 0.72 0.72 -> 1.00
[ T052: f2( a ) ]_____________________________________ 0.25 0.25 -> 1.00
[ T053: x := f4() ]___________________________________ 1.44 1.42 -> 1.01
[ T054: x := f5() ]___________________________________ 0.70 0.71 -> 1.00
[ T055: x := space(16) ]______________________________ 0.65 0.63 -> 1.04
[ T056: f_prv( c ) ]__________________________________ 1.09 1.09 -> 1.00
============================================================================
[ TOTAL ]_________________________________________ 51.13 51.93 -> 0.98
============================================================================
[ total application time: ]....................................52.06
[ total real time: ]..........................................103.38
*** End f) gcc335, OMF type, without -DHB_FM_DL_ALLOC ***
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour