On Tue, 31 Mar 2009, Szak�ts Viktor wrote:

Hi,

> Can you upload them to some public host?
> Sure:
> http://www.syenar.hu/harbour/owst.zip

I've just tested them with WINE on AMD Phenom(tm) 8450 Triple-Core 2100MHZ.
Results below.
Tomorrow I'll make tests with real Windows also with mixed version which
uses stack calling convention for exported functions.
BTW does harbour.dll works with current hbmk2 and OpenWatcom builds?

best regards,
Przemek



speedtst-CFLAGS-6r.exe
======================
03/31/09 22:27:51 Windows XP (Wine) 5.1.2600 Service Pack 2
Harbour 1.1.0dev (Rev. 10756) Open Watcom C++ 12.80.8 (32-bit)
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.05
====================================================================
[ T001: x := L_C ]..............................................0.03
[ T002: x := L_N ]..............................................0.02
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.05
[ T005: x := S_N ]..............................................0.04
[ T006: x := S_D ]..............................................0.04
[ T007: x := M->M_C ]...........................................0.05
[ T008: x := M->M_N ]...........................................0.04
[ T009: x := M->M_D ]...........................................0.05
[ T010: x := M->P_C ]...........................................0.05
[ T011: x := M->P_N ]...........................................0.04
[ T012: x := M->P_D ]...........................................0.05
[ T013: x := F_C ]..............................................0.13
[ T014: x := F_N ]..............................................0.23
[ T015: x := F_D ]..............................................0.14
[ T016: x := o:Args ]...........................................0.16
[ T017: x := o[2] ].............................................0.11
[ T018: round( i / 1000, 2 ) ]..................................0.27
[ T019: str( i / 1000 ) ].......................................0.64
[ T020: val( s ) ]..............................................0.25
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.45
[ T022: dtos( d - i % 10000 ) ].................................0.58
[ T023: eval( { || i % 16 } ) ].................................0.41
[ T024: eval( bc := { || i % 16 } ) ]...........................0.26
[ T025: eval( { |x| x % 16 }, i ) ].............................0.32
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.25
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.37
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.33
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.33
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................2.82
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................3.09
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.36
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.78
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.27
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.31
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.35
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.30
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.34
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.35
[ T040: ascan( a, i % 16 ) ]....................................0.33
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................3.19
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.77
[ T043: x := a ]................................................0.04
[ T044: x := {} ]...............................................0.08
[ T045: f0() ]..................................................0.08
[ T046: f1( i ) ]...............................................0.13
[ T047: f2( c[1...8] ) ]........................................0.12
[ T048: f2( c[1...40000] ) ]....................................0.12
[ T049: f2( @c[1...40000] ) ]...................................0.10
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.18
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.41
[ T052: f2( a ) ]...............................................0.12
[ T053: x := f4() ].............................................0.73
[ T054: x := f5() ].............................................0.25
[ T055: x := space(16) ]........................................0.22
[ T056: f_prv( c ) ]............................................0.34
====================================================================
[ total application time: ]....................................24.71
[ total real time: ]...........................................24.72

speedtst.exe
============
03/31/09 22:28:16 Windows XP (Wine) 5.1.2600 Service Pack 2
Harbour 1.1.0dev (Rev. 10748) Open Watcom C++ 12.80.8 (32-bit)
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.07
====================================================================
[ T001: x := L_C ]..............................................0.02
[ T002: x := L_N ]..............................................0.07
[ T003: x := L_D ]..............................................0.01
[ T004: x := S_C ]..............................................0.04
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.02
[ T007: x := M->M_C ]...........................................0.05
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.02
[ T010: x := M->P_C ]...........................................0.05
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.02
[ T013: x := F_C ]..............................................0.13
[ T014: x := F_N ]..............................................0.21
[ T015: x := F_D ]..............................................0.14
[ T016: x := o:Args ]...........................................0.16
[ T017: x := o[2] ].............................................0.10
[ T018: round( i / 1000, 2 ) ]..................................0.29
[ T019: str( i / 1000 ) ].......................................0.75
[ T020: val( s ) ]..............................................0.26
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.45
[ T022: dtos( d - i % 10000 ) ].................................0.61
[ T023: eval( { || i % 16 } ) ].................................0.38
[ T024: eval( bc := { || i % 16 } ) ]...........................0.26
[ T025: eval( { |x| x % 16 }, i ) ].............................0.33
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.28
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.40
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.34
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.34
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................2.63
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................3.23
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.40
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.85
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.31
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.39
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.38
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.39
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.38
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.38
[ T040: ascan( a, i % 16 ) ]....................................0.49
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................3.35
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.96
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.08
[ T045: f0() ]..................................................0.11
[ T046: f1( i ) ]...............................................0.12
[ T047: f2( c[1...8] ) ]........................................0.12
[ T048: f2( c[1...40000] ) ]....................................0.12
[ T049: f2( @c[1...40000] ) ]...................................0.09
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.13
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.51
[ T052: f2( a ) ]...............................................0.12
[ T053: x := f4() ].............................................0.77
[ T054: x := f5() ].............................................0.23
[ T055: x := space(16) ]........................................0.17
[ T056: f_prv( c ) ]............................................0.37
====================================================================
[ total application time: ]....................................26.86
[ total real time: ]...........................................26.87

speedtstmt-CFLAGS-6r.exe
========================
03/31/09 22:28:43 Windows XP (Wine) 5.1.2600 Service Pack 2
Harbour 1.1.0dev (Rev. 10756) (MT) Open Watcom C++ 12.80.8 (32-bit)
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.05
====================================================================
[ T001: x := L_C ]..............................................0.09
[ T002: x := L_N ]..............................................0.05
[ T003: x := L_D ]..............................................0.05
[ T004: x := S_C ]..............................................0.10
[ T005: x := S_N ]..............................................0.07
[ T006: x := S_D ]..............................................0.07
[ T007: x := M->M_C ]...........................................0.11
[ T008: x := M->M_N ]...........................................0.09
[ T009: x := M->M_D ]...........................................0.09
[ T010: x := M->P_C ]...........................................0.12
[ T011: x := M->P_N ]...........................................0.09
[ T012: x := M->P_D ]...........................................0.08
[ T013: x := F_C ]..............................................0.21
[ T014: x := F_N ]..............................................0.27
[ T015: x := F_D ]..............................................0.18
[ T016: x := o:Args ]...........................................0.29
[ T017: x := o[2] ].............................................0.18
[ T018: round( i / 1000, 2 ) ]..................................0.43
[ T019: str( i / 1000 ) ].......................................0.83
[ T020: val( s ) ]..............................................0.39
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.66
[ T022: dtos( d - i % 10000 ) ].................................0.82
[ T023: eval( { || i % 16 } ) ].................................0.72
[ T024: eval( bc := { || i % 16 } ) ]...........................0.44
[ T025: eval( { |x| x % 16 }, i ) ].............................0.59
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.44
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.74
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.59
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.61
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................3.40
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................4.28
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.64
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........1.15
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.46
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.50
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.50
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.51
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.49
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.49
[ T040: ascan( a, i % 16 ) ]....................................0.59
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................5.21
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....1.31
[ T043: x := a ]................................................0.09
[ T044: x := {} ]...............................................0.20
[ T045: f0() ]..................................................0.18
[ T046: f1( i ) ]...............................................0.24
[ T047: f2( c[1...8] ) ]........................................0.30
[ T048: f2( c[1...40000] ) ]....................................0.26
[ T049: f2( @c[1...40000] ) ]...................................0.22
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.30
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.64
[ T052: f2( a ) ]...............................................0.33
[ T053: x := f4() ].............................................1.03
[ T054: x := f5() ].............................................0.52
[ T055: x := space(16) ]........................................0.43
[ T056: f_prv( c ) ]............................................0.81
====================================================================
[ total application time: ]....................................37.30
[ total real time: ]...........................................37.32

speedtstmt.exe
==============
03/31/09 22:29:21 Windows XP (Wine) 5.1.2600 Service Pack 2
Harbour 1.1.0dev (Rev. 10748) (MT) Open Watcom C++ 12.80.8 (32-bit)
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.08
====================================================================
[ T001: x := L_C ]..............................................0.05
[ T002: x := L_N ]..............................................0.02
[ T003: x := L_D ]..............................................0.02
[ T004: x := S_C ]..............................................0.07
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.04
[ T007: x := M->M_C ]...........................................0.08
[ T008: x := M->M_N ]...........................................0.05
[ T009: x := M->M_D ]...........................................0.06
[ T010: x := M->P_C ]...........................................0.08
[ T011: x := M->P_N ]...........................................0.06
[ T012: x := M->P_D ]...........................................0.05
[ T013: x := F_C ]..............................................0.18
[ T014: x := F_N ]..............................................0.23
[ T015: x := F_D ]..............................................0.16
[ T016: x := o:Args ]...........................................0.26
[ T017: x := o[2] ].............................................0.14
[ T018: round( i / 1000, 2 ) ]..................................0.42
[ T019: str( i / 1000 ) ].......................................0.91
[ T020: val( s ) ]..............................................0.35
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.67
[ T022: dtos( d - i % 10000 ) ].................................0.79
[ T023: eval( { || i % 16 } ) ].................................0.71
[ T024: eval( bc := { || i % 16 } ) ]...........................0.43
[ T025: eval( { |x| x % 16 }, i ) ].............................0.57
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.43
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.70
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.60
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.56
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................3.53
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................5.05
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.61
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........1.18
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.43
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.53
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.48
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.48
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.47
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.52
[ T040: ascan( a, i % 16 ) ]....................................0.67
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................5.31
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....1.31
[ T043: x := a ]................................................0.05
[ T044: x := {} ]...............................................0.19
[ T045: f0() ]..................................................0.13
[ T046: f1( i ) ]...............................................0.19
[ T047: f2( c[1...8] ) ]........................................0.21
[ T048: f2( c[1...40000] ) ]....................................0.21
[ T049: f2( @c[1...40000] ) ]...................................0.17
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.29
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.63
[ T052: f2( a ) ]...............................................0.21
[ T053: x := f4() ].............................................0.98
[ T054: x := f5() ].............................................0.44
[ T055: x := space(16) ]........................................0.32
[ T056: f_prv( c ) ]............................................0.79
====================================================================
[ total application time: ]....................................38.59
[ total real time: ]...........................................38.62
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to