> I've also teststed 1.7a in Linux and WINE and it works correctly.
> The native Linux build does not work due to missing functions and
> some typos in header files. In spare time I'll try to collect my
> local OW patches and send them to OW devel list.

>> hbrun_st.exe speedtst.prg
>> --------------------------
>> [ total application time: ]....................................67.08
>> [ total real time: ]...........................................67.34
>>
>> hbrun_mt.exe speedtst.prg --exclude=mem --scale --thread=2
>> --------------------------
<> [ total application time: ]...................................104.42
>> [ total real time: ]..........................................107.14

>Try to rebuild Harbour with HB_FM_DL_ALLOC and USE_DL_PREFIX macros, >f.e.:
>   set C_USR=-DHB_FM_DL_ALLOC -DUSE_DL_PREFIX
>and recompile Harbour. Then compare speed results for both modes.

Not so much difference:

hbrun_st.exe speedtst.prg
--------------------------
[ total application time: ]....................................61.39
[ total real time: ]...........................................61.74

hbrun_mt.exe speedtst.prg --exclude=mem --scale --thread=2
--------------------------
[ total application time: ]...................................104.03
[ total real time: ]..........................................104.53

David Macias


hbrun_st.exe speedtst.prg
--------------------------

Warning !!! Memory statistic enabled.

11/08/08 18:49:55 Windows XP 5.1.2600 Service Pack 2
Harbour 1.1.0dev (Rev. 9854) Open Watcom C++ 12.70.8 (32-bit)
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.16
====================================================================
[ T001: x := L_C ]..............................................0.13
[ T002: x := L_N ]..............................................0.13
[ T003: x := L_D ]..............................................0.13
[ T004: x := S_C ]..............................................0.11
[ T005: x := S_N ]..............................................0.11
[ T006: x := S_D ]..............................................0.09
[ T007: x := M_C ]..............................................0.13
[ T008: x := M_N ]..............................................0.13
[ T009: x := M_D ]..............................................0.11
[ T010: x := P_C ]..............................................0.11
[ T011: x := P_N ]..............................................0.09
[ T012: x := P_D ]..............................................0.11
[ T013: x := F_C ]..............................................0.47
[ T014: x := F_N ]..............................................0.38
[ T015: x := F_D ]..............................................0.25
[ T016: x := o:GenCode ]........................................0.39
[ T017: x := o[8] ].............................................0.27
[ T018: round( i / 1000, 2 ) ]..................................0.47
[ T019: str( i / 1000 ) ].......................................1.16
[ T020: val( s ) ]..............................................0.45
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.83
[ T022: dtos( d - i % 10000 ) ].................................1.19
[ T023: eval( { || i % 16 } ) ].................................1.39
[ T024: eval( bc := { || i % 16 } ) ]...........................0.45
[ T025: eval( { |x| x % 16 }, i ) ].............................1.11
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.50
[ T027: eval( { |x| f1( x ) }, i ) ]............................1.31
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.70
[ T029: x := &( "f1(" + str(i) + ")" ) ]........................7.08
[ T030: bc := &( "{|x|f1(x)}" ); eval( bc, i ) ]................8.86
[ T031: x := valtype( x ) +  valtype( i ) ].....................1.06
[ T032: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........1.72
[ T033: x := a[ i % 16 + 1 ] == s ].............................0.66
[ T034: x := a[ i % 16 + 1 ] = s ]..............................0.72
[ T035: x := a[ i % 16 + 1 ] >= s ].............................0.72
[ T036: x := a[ i % 16 + 1 ] <= s ].............................0.75
[ T037: x := a[ i % 16 + 1 ] < s ]..............................0.70
[ T038: x := a[ i % 16 + 1 ] > s ]..............................0.73
[ T039: ascan( a, i % 16 ) ]....................................0.61
[ T040: ascan( a, { |x| x == i % 16 } ) ].......................6.44
[ T041: if i%1000==0;a:={};end; aadd(a,{i,1,.T.,s,s2,a2,bc ]....3.44
[ T042: x := a ]................................................0.16
[ T043: x := {} ]...............................................0.42
[ T044: f0() ]..................................................0.22
[ T045: f1( i ) ]...............................................0.34
[ T046: f2( c[1...8] ) ]........................................0.33
[ T047: f2( c[1...40000] ) ]....................................0.33
[ T048: f2( @c[1...40000] ) ]...................................0.31
[ T049: f2( @c[1...40000] ), c2 := c ]..........................0.44
[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.91
[ T051: f2( a ) ]...............................................0.33
[ T052: x := f4() ].............................................1.23
[ T053: x := f5() ].............................................0.78
[ T054: f_prv( c ) ]............................................0.97
====================================================================
[ total application time: ]....................................61.39
[ total real time: ]...........................................61.74



hbrun_mt.exe speedtst.prg --exclude=mem --scale --thread=2
--------------------------

Warning !!! Memory statistic enabled.

11/08/08 18:51:51 Windows XP 5.1.2600 Service Pack 2
Harbour 1.1.0dev (Rev. 9854) (MT)+ Open Watcom C++ 12.70.8 (32-bit)
THREADS: 2
N_LOOPS: 1000000
excluded tests: 029 030 023 025 027 040 041 043 052 053 019 022 031 032 054
1 th. 2 th. factor
============================================================================
[ T001: x := L_C ]____________________________________  0.72   0.74 ->  0.98
[ T002: x := L_N ]____________________________________  0.66   0.66 ->  1.00
[ T003: x := L_D ]____________________________________  0.64   0.64 ->  1.00
[ T004: x := S_C ]____________________________________  0.69   0.73 ->  0.94
[ T005: x := S_N ]____________________________________  0.63   0.61 ->  1.02
[ T006: x := S_D ]____________________________________  0.59   0.61 ->  0.97
[ T007: x := M_C ]____________________________________  0.69   0.70 ->  0.98
[ T008: x := M_N ]____________________________________  0.64   0.63 ->  1.03
[ T009: x := M_D ]____________________________________  0.63   0.63 ->  1.00
[ T010: x := P_C ]____________________________________  0.67   0.66 ->  1.02
[ T011: x := P_N ]____________________________________  0.63   0.63 ->  1.00
[ T012: x := P_D ]____________________________________  0.63   0.63 ->  1.00
[ T013: x := F_C ]____________________________________  1.61   1.61 ->  1.00
[ T014: x := F_N ]____________________________________  1.14   1.14 ->  1.00
[ T015: x := F_D ]____________________________________  0.86   0.86 ->  1.00
[ T016: x := o:GenCode ]______________________________  1.30   1.31 ->  0.99
[ T017: x := o[8] ]___________________________________  1.05   1.05 ->  1.00
[ T018: round( i / 1000, 2 ) ]________________________  1.56   1.56 ->  1.00
[ T020: val( s ) ]____________________________________  1.47   1.49 ->  0.99
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  3.00   3.00 ->  1.00
[ T024: eval( bc := { || i % 16 } ) ]_________________  1.72   1.72 ->  1.00
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  1.81   1.81 ->  1.00
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  2.20   2.19 ->  1.01
[ T033: x := a[ i % 16 + 1 ] == s ]___________________  2.09   2.08 ->  1.01
[ T034: x := a[ i % 16 + 1 ] = s ]____________________  2.22   2.20 ->  1.01
[ T035: x := a[ i % 16 + 1 ] >= s ]___________________  2.22   2.20 ->  1.01
[ T036: x := a[ i % 16 + 1 ] <= s ]___________________  2.23   2.27 ->  0.99
[ T037: x := a[ i % 16 + 1 ] < s ]____________________  2.23   2.22 ->  1.01
[ T038: x := a[ i % 16 + 1 ] > s ]____________________  2.19   2.19 ->  1.00
[ T039: ascan( a, i % 16 ) ]__________________________  2.00   2.02 ->  0.99
[ T042: x := a ]______________________________________  0.75   0.73 ->  1.02
[ T044: f0() ]________________________________________  0.89   0.91 ->  0.98
[ T045: f1( i ) ]_____________________________________  1.20   1.20 ->  1.00
[ T046: f2( c[1...8] ) ]______________________________  1.14   1.14 ->  1.00
[ T047: f2( c[1...40000] ) ]__________________________  1.13   1.14 ->  0.99
[ T048: f2( @c[1...40000] ) ]_________________________  1.16   1.14 ->  1.01
[ T049: f2( @c[1...40000] ), c2 := c ]________________  1.47   1.47 ->  1.00
[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  2.59   2.58 ->  1.01
[ T051: f2( a ) ]_____________________________________  1.20   1.19 ->  1.01
============================================================================
[   TOTAL   ]_________________________________________ 52.23  52.25 ->  1.00
============================================================================
[ total application time: ]...................................104.03
[ total real time: ]..........................................104.53

_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to