Przemyslaw,

dlmalloc makes a BIG difference, really outstanding, to the point that in MT
mode, without it, there is no advantage in going MT!

Here are the result of OS/2 with GCC, each file has the output of:

speedtst in st mode
speedtst in mt mode
speedtst --thread
speedtst --thread=2 --scale.

spdt.txt is without dlmalloc; spdt-dl.txt is with dlmalloc.

They were collected on a dual core laptop with a centrino duo.

Thanks so much for porting dlmalloc to OS/2.

Maurilio.


-- 
 __________
|  |  | |__| Maurilio Longo
|_|_|_|____| farmaconsult s.r.l.


2009.11.25 00:29:35 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) 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.00
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.00
[ T005: x := S_N ]..............................................0.00
[ T006: x := S_D ]..............................................0.00
[ T007: x := M->M_C ]...........................................0.00
[ T008: x := M->M_N ]...........................................0.00
[ T009: x := M->M_D ]...........................................0.00
[ T010: x := M->P_C ]...........................................0.00
[ T011: x := M->P_N ]...........................................0.00
[ T012: x := M->P_D ]...........................................0.00
[ T013: x := F_C ]..............................................0.00
[ T014: x := F_N ]..............................................0.00
[ T015: x := F_D ]..............................................0.00
[ T016: x := o:Args ]...........................................0.00
[ T017: x := o[2] ].............................................0.00
[ T018: round( i / 1000, 2 ) ]..................................0.00
[ T019: str( i / 1000 ) ].......................................0.13
[ T020: val( s ) ]..............................................0.00
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.06
[ T022: dtos( d - i % 10000 ) ].................................0.00
[ T023: eval( { || i % 16 } ) ].................................0.10
[ T024: eval( bc := { || i % 16 } ) ]...........................0.00
[ T025: eval( { |x| x % 16 }, i ) ].............................0.03
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.00
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.00
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.00
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.00
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................0.39
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................0.52
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.13
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.06
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.00
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.00
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.00
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.00
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.00
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.00
[ T040: ascan( a, i % 16 ) ]....................................0.00
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................0.39
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.03
[ T043: x := a ]................................................0.00
[ T044: x := {} ]...............................................0.00
[ T045: f0() ]..................................................0.00
[ T046: f1( i ) ]...............................................0.00
[ T047: f2( c[1...8] ) ]........................................0.00
[ T048: f2( c[1...40000] ) ]....................................0.00
[ T049: f2( @c[1...40000] ) ]...................................0.00
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.00
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.03
[ T052: f2( a ) ]...............................................0.00
[ T053: x := f4() ].............................................0.13
[ T054: x := f5() ].............................................0.00
[ T055: x := space(16) ]........................................0.00
[ T056: f_prv( c ) ]............................................0.29
====================================================================
[ total application time: ].....................................3.23
[ total real time: ]...........................................29.78

2009.11.25 00:30:36 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) (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.00
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.00
[ T005: x := S_N ]..............................................0.00
[ T006: x := S_D ]..............................................0.00
[ T007: x := M->M_C ]...........................................0.00
[ T008: x := M->M_N ]...........................................0.00
[ T009: x := M->M_D ]...........................................0.00
[ T010: x := M->P_C ]...........................................0.00
[ T011: x := M->P_N ]...........................................0.00
[ T012: x := M->P_D ]...........................................0.00
[ T013: x := F_C ]..............................................0.03
[ T014: x := F_N ]..............................................0.00
[ T015: x := F_D ]..............................................0.00
[ T016: x := o:Args ]...........................................0.00
[ T017: x := o[2] ].............................................0.03
[ T018: round( i / 1000, 2 ) ]..................................0.10
[ T019: str( i / 1000 ) ].......................................0.00
[ T020: val( s ) ]..............................................0.06
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.00
[ T022: dtos( d - i % 10000 ) ].................................0.00
[ T023: eval( { || i % 16 } ) ].................................0.10
[ T024: eval( bc := { || i % 16 } ) ]...........................0.00
[ T025: eval( { |x| x % 16 }, i ) ].............................0.10
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.00
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.00
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.03
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.00
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................0.87
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................0.61
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.06
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.03
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.06
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.03
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.06
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.00
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.06
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.03
[ T040: ascan( a, i % 16 ) ]....................................0.03
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................0.42
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.23
[ T043: x := a ]................................................0.00
[ T044: x := {} ]...............................................0.00
[ T045: f0() ]..................................................0.00
[ T046: f1( i ) ]...............................................0.03
[ T047: f2( c[1...8] ) ]........................................0.00
[ T048: f2( c[1...40000] ) ]....................................0.00
[ T049: f2( @c[1...40000] ) ]...................................0.00
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.00
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.16
[ T052: f2( a ) ]...............................................0.10
[ T053: x := f4() ].............................................0.10
[ T054: x := f5() ].............................................0.00
[ T055: x := space(16) ]........................................0.00
[ T056: f_prv( c ) ]............................................0.00
====================================================================
[ total application time: ].....................................4.42
[ total real time: ]...........................................40.78

2009.11.25 00:31:36 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) (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 ]..............................................0.10
[ T002: x := L_N ]..............................................2.55
[ T003: x := L_D ]..............................................2.55
[ T004: x := S_C ]..............................................2.23
[ T005: x := S_N ]..............................................2.65
[ T006: x := S_D ]..............................................2.55
[ T007: x := M->M_C ]...........................................4.00
[ T008: x := M->M_N ]...........................................1.35
[ T009: x := M->M_D ]...........................................0.06
[ T010: x := M->P_C ]...........................................2.19
[ T011: x := M->P_N ]...........................................2.13
[ T012: x := M->P_D ]...........................................1.68
[ T013: x := F_C ]..............................................5.13
[ T014: x := F_N ]..............................................3.06
[ T015: x := F_D ]..............................................1.74
[ T016: x := o:Args ]...........................................3.68
[ T017: x := o[2] ].............................................3.74
[ T018: round( i / 1000, 2 ) ]..................................3.13
[ T019: str( i / 1000 ) ].......................................5.87
[ T020: val( s ) ]..............................................4.10
[ T021: val( a [ i % 16 + 1 ] ) ]...............................5.58
[ T022: dtos( d - i % 10000 ) ].................................5.45
[ T023: eval( { || i % 16 } ) ].................................3.32
[ T024: eval( bc := { || i % 16 } ) ]...........................1.97
[ T025: eval( { |x| x % 16 }, i ) ].............................2.03
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................1.61
[ T027: eval( { |x| f1( x ) }, i ) ]............................2.42
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................2.71
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................1.74
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................5.06
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................0.03
[ T032: x := valtype( x ) +  valtype( i ) ].....................4.39
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........2.45
[ T034: x := a[ i % 16 + 1 ] == s ].............................4.45
[ T035: x := a[ i % 16 + 1 ] = s ]..............................4.90
[ T036: x := a[ i % 16 + 1 ] >= s ].............................5.52
[ T037: x := a[ i % 16 + 1 ] <= s ].............................5.13
[ T038: x := a[ i % 16 + 1 ] < s ]..............................4.03
[ T039: x := a[ i % 16 + 1 ] > s ]..............................4.23
[ T040: ascan( a, i % 16 ) ]....................................0.68
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................1.55
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....2.52
[ T043: x := a ]................................................0.00
[ T044: x := {} ]...............................................0.97
[ T045: f0() ]..................................................0.32
[ T046: f1( i ) ]...............................................0.71
[ T047: f2( c[1...8] ) ]........................................0.77
[ T048: f2( c[1...40000] ) ]....................................0.29
[ T049: f2( @c[1...40000] ) ]...................................0.90
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.55
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.35
[ T052: f2( a ) ]...............................................0.87
[ T053: x := f4() ].............................................0.35
[ T054: x := f5() ].............................................0.74
[ T055: x := space(16) ]........................................0.81
[ T056: f_prv( c ) ]............................................1.03
====================================================================
[ total application time: ].....................................0.00
[ total real time: ]...........................................23.77

2009.11.25 00:32:10 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) (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.27   0.13 ->  2.03
[ T002: x := L_N ]____________________________________  0.15   0.08 ->  1.96
[ T003: x := L_D ]____________________________________  0.14   0.08 ->  1.88
[ T004: x := S_C ]____________________________________  0.31   0.60 ->  0.53
[ T005: x := S_N ]____________________________________  0.18   0.10 ->  1.89
[ T006: x := S_D ]____________________________________  0.19   0.09 ->  2.00
[ T007: x := M->M_C ]_________________________________  0.38   0.20 ->  1.96
[ T008: x := M->M_N ]_________________________________  0.26   0.13 ->  1.93
[ T009: x := M->M_D ]_________________________________  0.25   0.13 ->  1.94
[ T010: x := M->P_C ]_________________________________  0.31   0.19 ->  1.63
[ T011: x := M->P_N ]_________________________________  0.26   0.13 ->  2.02
[ T012: x := M->P_D ]_________________________________  0.25   0.13 ->  1.97
[ T013: x := F_C ]____________________________________  0.75   0.38 ->  1.96
[ T014: x := F_N ]____________________________________  0.57   0.29 ->  1.96
[ T015: x := F_D ]____________________________________  0.34   0.17 ->  1.95
[ T016: x := o:Args ]_________________________________  0.66   0.34 ->  1.93
[ T017: x := o[2] ]___________________________________  0.46   0.24 ->  1.91
[ T018: round( i / 1000, 2 ) ]________________________  0.81   0.42 ->  1.94
[ T019: str( i / 1000 ) ]_____________________________  2.66   1.35 ->  1.97
[ T020: val( s ) ]____________________________________  0.78   0.40 ->  1.97
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  1.41   0.71 ->  1.97
[ T022: dtos( d - i % 10000 ) ]_______________________  1.39   0.71 ->  1.95
[ T023: eval( { || i % 16 } ) ]_______________________  1.80   1.98 ->  0.91
[ T024: eval( bc := { || i % 16 } ) ]_________________  0.88   0.45 ->  1.95
[ T025: eval( { |x| x % 16 }, i ) ]___________________  1.18   1.67 ->  0.71
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  0.86   0.45 ->  1.93
[ T027: eval( { |x| f1( x ) }, i ) ]__________________  1.31   1.59 ->  0.83
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  0.99   0.50 ->  1.96
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______  0.99   0.50 ->  1.96
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 11.26   6.00 ->  1.88
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 12.32   7.04 ->  1.75
[ T032: x := valtype( x ) +  valtype( i ) ]___________  1.46   0.74 ->  1.98
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]  2.80   1.41 ->  1.98
[ T034: x := a[ i % 16 + 1 ] == s ]___________________  1.14   0.57 ->  1.99
[ T035: x := a[ i % 16 + 1 ] = s ]____________________  1.17   0.59 ->  1.98
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________  1.18   0.60 ->  1.98
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________  1.18   0.60 ->  1.97
[ T038: x := a[ i % 16 + 1 ] < s ]____________________  1.18   0.60 ->  1.95
[ T039: x := a[ i % 16 + 1 ] > s ]____________________  1.19   0.60 ->  1.99
[ T040: ascan( a, i % 16 ) ]__________________________  1.13   0.58 ->  1.97
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 10.17   6.12 ->  1.66
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ]  3.21   2.45 ->  1.31
[ T043: x := a ]______________________________________  0.28   0.14 ->  2.03
[ T044: x := {} ]_____________________________________  0.61   0.77 ->  0.79
[ T045: f0() ]________________________________________  0.28   0.14 ->  1.92
[ T046: f1( i ) ]_____________________________________  0.39   0.20 ->  1.95
[ T047: f2( c[1...8] ) ]______________________________  0.48   0.24 ->  1.95
[ T048: f2( c[1...40000] ) ]__________________________  0.48   0.24 ->  2.04
[ T049: f2( @c[1...40000] ) ]_________________________  0.35   0.17 ->  2.02
[ T050: f2( @c[1...40000] ), c2 := c ]________________  0.55   0.28 ->  1.99
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  1.43   0.72 ->  1.99
[ T052: f2( a ) ]_____________________________________  0.50   0.26 ->  1.91
[ T053: x := f4() ]___________________________________  2.26   1.15 ->  1.97
[ T054: x := f5() ]___________________________________  0.91   0.45 ->  2.00
[ T055: x := space(16) ]______________________________  0.73   0.37 ->  1.97
[ T056: f_prv( c ) ]__________________________________  1.56   0.78 ->  1.99
============================================================================
[   TOTAL   ]_________________________________________ 81.00  47.95 ->  1.69
============================================================================
[ total application time: ].....................................2.32
[ total real time: ]..........................................128.95
2009.11.25 00:55:14 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) EMX GNU C 3.3.5 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.00
====================================================================
[ T001: x := L_C ]..............................................0.00
[ 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.00
[ T007: x := M->M_C ]...........................................0.00
[ T008: x := M->M_N ]...........................................0.00
[ 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.00
[ T013: x := F_C ]..............................................0.00
[ T014: x := F_N ]..............................................0.03
[ T015: x := F_D ]..............................................0.03
[ T016: x := o:Args ]...........................................0.03
[ T017: x := o[2] ].............................................0.00
[ T018: round( i / 1000, 2 ) ]..................................0.00
[ T019: str( i / 1000 ) ].......................................0.10
[ T020: val( s ) ]..............................................0.10
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.06
[ T022: dtos( d - i % 10000 ) ].................................0.10
[ T023: eval( { || i % 16 } ) ].................................0.06
[ T024: eval( bc := { || i % 16 } ) ]...........................0.03
[ T025: eval( { |x| x % 16 }, i ) ].............................0.10
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.00
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.32
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.06
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.06
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................1.16
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................0.81
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.10
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.13
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.03
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.03
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.03
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.00
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.03
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.13
[ T040: ascan( a, i % 16 ) ]....................................0.00
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................0.71
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.23
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.06
[ T045: f0() ]..................................................0.00
[ T046: f1( i ) ]...............................................0.03
[ T047: f2( c[1...8] ) ]........................................0.00
[ T048: f2( c[1...40000] ) ]....................................0.00
[ T049: f2( @c[1...40000] ) ]...................................0.00
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.00
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.00
[ T052: f2( a ) ]...............................................0.00
[ T053: x := f4() ].............................................0.06
[ T054: x := f5() ].............................................0.03
[ T055: x := space(16) ]........................................0.10
[ T056: f_prv( c ) ]............................................0.26
====================================================================
[ total application time: ].....................................5.19
[ total real time: ]...........................................40.59

2009.11.25 00:56:10 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) (MT) EMX GNU C 3.3.5 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.00
====================================================================
[ T001: x := L_C ]..............................................0.00
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.00
[ 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.00
[ T009: x := M->M_D ]...........................................0.06
[ T010: x := M->P_C ]...........................................0.00
[ T011: x := M->P_N ]...........................................0.00
[ T012: x := M->P_D ]...........................................0.00
[ T013: x := F_C ]..............................................0.06
[ T014: x := F_N ]..............................................0.00
[ T015: x := F_D ]..............................................0.00
[ T016: x := o:Args ]...........................................0.00
[ T017: x := o[2] ].............................................0.10
[ T018: round( i / 1000, 2 ) ]..................................0.03
[ T019: str( i / 1000 ) ].......................................0.13
[ T020: val( s ) ]..............................................0.10
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.00
[ T022: dtos( d - i % 10000 ) ].................................0.23
[ T023: eval( { || i % 16 } ) ].................................0.26
[ T024: eval( bc := { || i % 16 } ) ]...........................0.00
[ T025: eval( { |x| x % 16 }, i ) ].............................0.10
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.03
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.06
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.13
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.03
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................1.00
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................1.39
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.10
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.35
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.10
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.00
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.32
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.03
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.06
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.00
[ T040: ascan( a, i % 16 ) ]....................................0.16
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................0.68
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.39
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.03
[ T045: f0() ]..................................................0.00
[ T046: f1( i ) ]...............................................0.00
[ T047: f2( c[1...8] ) ]........................................0.06
[ T048: f2( c[1...40000] ) ]....................................0.00
[ T049: f2( @c[1...40000] ) ]...................................0.00
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.06
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.10
[ T052: f2( a ) ]...............................................0.03
[ T053: x := f4() ].............................................0.19
[ T054: x := f5() ].............................................0.23
[ T055: x := space(16) ]........................................0.06
[ T056: f_prv( c ) ]............................................0.16
====================================================================
[ total application time: ].....................................6.94
[ total real time: ]...........................................47.72

2009.11.25 00:57:05 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) (MT)+ EMX GNU C 3.3.5 (32-bit) x86
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.00
====================================================================
[ T001: x := L_C ]..............................................1.45
[ T002: x := L_N ]..............................................1.42
[ T003: x := L_D ]..............................................0.06
[ T004: x := S_C ]..............................................0.19
[ T005: x := S_N ]..............................................0.74
[ T006: x := S_D ]..............................................1.26
[ T007: x := M->M_C ]...........................................1.03
[ T008: x := M->M_N ]...........................................1.13
[ T009: x := M->M_D ]...........................................1.19
[ T010: x := M->P_C ]...........................................1.48
[ T011: x := M->P_N ]...........................................0.13
[ T012: x := M->P_D ]...........................................1.16
[ T013: x := F_C ].............................................15.61
[ T014: x := F_N ]..............................................1.03
[ T015: x := F_D ]..............................................1.10
[ T016: x := o:Args ]...........................................1.19
[ T017: x := o[2] ].............................................0.84
[ T018: round( i / 1000, 2 ) ]..................................1.48
[ T019: str( i / 1000 ) ]......................................12.97
[ T020: val( s ) ]..............................................1.52
[ T021: val( a [ i % 16 + 1 ] ) ]...............................1.00
[ T022: dtos( d - i % 10000 ) ]................................14.00
[ T023: eval( { || i % 16 } ) ].................................7.97
[ T024: eval( bc := { || i % 16 } ) ]...........................1.68
[ T025: eval( { |x| x % 16 }, i ) ]............................14.19
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................2.13
[ T027: eval( { |x| f1( x ) }, i ) ]...........................11.94
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................1.35
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................1.39
[ T030: x := &( "f1(" + str(i) + ")" ) ].......................13.19
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]...............25.19
[ T032: x := valtype( x ) +  valtype( i ) ].....................9.58
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ].........14.48
[ T034: x := a[ i % 16 + 1 ] == s ].............................1.94
[ T035: x := a[ i % 16 + 1 ] = s ]..............................1.65
[ T036: x := a[ i % 16 + 1 ] >= s ].............................2.03
[ T037: x := a[ i % 16 + 1 ] <= s ].............................1.65
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.90
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.00
[ T040: ascan( a, i % 16 ) ]....................................2.06
[ T041: ascan( a, { |x| x == i % 16 } ) ]......................10.77
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....7.81
[ T043: x := a ]................................................0.13
[ T044: x := {} ]..............................................11.19
[ T045: f0() ]..................................................0.10
[ T046: f1( i ) ]...............................................0.00
[ T047: f2( c[1...8] ) ]........................................0.19
[ T048: f2( c[1...40000] ) ]....................................0.00
[ T049: f2( @c[1...40000] ) ]...................................0.00
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.26
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.13
[ T052: f2( a ) ]...............................................0.16
[ T053: x := f4() ]............................................11.97
[ T054: x := f5() ].............................................8.19
[ T055: x := space(16) ].......................................11.45
[ T056: f_prv( c ) ]............................................6.39
====================================================================
[ total application time: ].....................................0.00
[ total real time: ]...........................................56.66

2009.11.25 00:58:21 OS/2 4.50
Harbour 2.0.0beta3 (Rev. 13011) (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.25   0.32 ->  0.78
[ T002: x := L_N ]____________________________________  0.14   0.07 ->  2.01
[ T003: x := L_D ]____________________________________  0.15   0.07 ->  2.07
[ T004: x := S_C ]____________________________________  0.32   0.60 ->  0.53
[ T005: x := S_N ]____________________________________  0.19   0.09 ->  1.99
[ T006: x := S_D ]____________________________________  0.18   0.09 ->  1.94
[ T007: x := M->M_C ]_________________________________  0.38   0.19 ->  1.97
[ T008: x := M->M_N ]_________________________________  0.24   0.12 ->  1.98
[ T009: x := M->M_D ]_________________________________  0.25   0.13 ->  1.98
[ T010: x := M->P_C ]_________________________________  0.31   0.19 ->  1.58
[ T011: x := M->P_N ]_________________________________  0.24   0.13 ->  1.92
[ T012: x := M->P_D ]_________________________________  0.25   0.12 ->  2.00
[ T013: x := F_C ]____________________________________  1.16   4.23 ->  0.27
[ T014: x := F_N ]____________________________________  0.58   0.30 ->  1.95
[ T015: x := F_D ]____________________________________  0.35   0.18 ->  1.98
[ T016: x := o:Args ]_________________________________  0.64   0.32 ->  1.98
[ T017: x := o[2] ]___________________________________  0.50   0.25 ->  1.97
[ T018: round( i / 1000, 2 ) ]________________________  0.83   0.43 ->  1.93
[ T019: str( i / 1000 ) ]_____________________________  2.98   3.74 ->  0.80
[ T020: val( s ) ]____________________________________  0.77   0.39 ->  1.98
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  1.36   0.70 ->  1.96
[ T022: dtos( d - i % 10000 ) ]_______________________  1.89   2.43 ->  0.78
[ T023: eval( { || i % 16 } ) ]_______________________  2.80   5.68 ->  0.49
[ T024: eval( bc := { || i % 16 } ) ]_________________  0.91   0.47 ->  1.92
[ T025: eval( { |x| x % 16 }, i ) ]___________________  1.80   2.66 ->  0.67
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  0.89   0.46 ->  1.94
[ T027: eval( { |x| f1( x ) }, i ) ]__________________  1.86   2.28 ->  0.81
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  0.95   0.48 ->  1.99
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______  0.94   0.47 ->  1.99
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 14.23  26.22 ->  0.54
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 16.22  34.17 ->  0.47
[ T032: x := valtype( x ) +  valtype( i ) ]___________  1.84   2.50 ->  0.74
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]  3.30   3.51 ->  0.94
[ T034: x := a[ i % 16 + 1 ] == s ]___________________  1.21   0.72 ->  1.67
[ T035: x := a[ i % 16 + 1 ] = s ]____________________  1.25   0.74 ->  1.70
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________  1.26   0.74 ->  1.70
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________  1.26   0.77 ->  1.63
[ T038: x := a[ i % 16 + 1 ] < s ]____________________  1.26   0.76 ->  1.66
[ T039: x := a[ i % 16 + 1 ] > s ]____________________  1.27   0.75 ->  1.68
[ T040: ascan( a, i % 16 ) ]__________________________  1.14   0.58 ->  1.97
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 11.12   8.84 ->  1.26
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ]  4.38   6.39 ->  0.69
[ T043: x := a ]______________________________________  0.28   0.14 ->  1.99
[ T044: x := {} ]_____________________________________  1.08   2.85 ->  0.38
[ T045: f0() ]________________________________________  0.28   0.14 ->  1.94
[ T046: f1( i ) ]_____________________________________  0.00   0.73 ->  0.00
[ T047: f2( c[1...8] ) ]______________________________  0.48   0.00 ->  0.00
[ T048: f2( c[1...40000] ) ]__________________________  0.45   0.24 ->  1.89
[ T049: f2( @c[1...40000] ) ]_________________________  0.34   0.17 ->  1.99
[ T050: f2( @c[1...40000] ), c2 := c ]________________  0.57   0.40 ->  1.43
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  1.44   0.83 ->  1.73
[ T052: f2( a ) ]_____________________________________  0.49   0.25 ->  1.94
[ T053: x := f4() ]___________________________________  2.69   3.23 ->  0.83
[ T054: x := f5() ]___________________________________  1.34   3.45 ->  0.39
[ T055: x := space(16) ]______________________________  1.20   3.53 ->  0.34
[ T056: f_prv( c ) ]__________________________________  2.18   3.54 ->  0.62
============================================================================
[   TOTAL   ]_________________________________________ 96.65 133.79 ->  0.72
============================================================================
[ total application time: ].....................................2.13
[ total real time: ]..........................................230.45
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to