> 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