Hi Viktor,

As far as I know Xbase++ is always executed in MT mode cause at least the GC
is executed in a different Thread. 

 

Brgds

Mike Evans

 

From: [email protected]
[mailto:[email protected]] On Behalf Of Viktor Szakats
Sent: Monday, March 16, 2009 9:21 PM
To: Harbour Project Main Developer List.
Subject: Re: [Harbour] Re: Question to xBase++ users

 

with 2 threads (The Harbour results look this weird on every run):

 

03/16/2009 20:08:01 Windows XP 05.01 Build 02600 Service Pack 3

Xbase++ (R) Version 1.90 (MT)+ 

THREADS: 2

N_LOOPS: 1000000

[ T000: empty loop overhead ]...................................0.03

====================================================================

[ T001: x := L_C ]..............................................0.04

[ T002: x := L_N ]..............................................0.01

[ T003: x := L_D ]..............................................0.00

[ T004: x := S_C ]..............................................0.08

[ T005: x := S_N ]..............................................0.05

[ T006: x := S_D ]..............................................0.05

[ T007: x := M_C ]..............................................0.23

[ T008: x := M_N ]..............................................0.19

[ T009: x := M_D ]..............................................0.19

[ T010: x := P_C ]..............................................0.25

[ T011: x := P_N ]..............................................0.19

[ T012: x := P_D ]..............................................0.19

[ T013: x := F_C ]..............................................0.39

[ T014: x := F_N ]..............................................0.32

[ T015: x := F_D ]..............................................0.33

[ T016: x := o:Args ]...........................................0.22

[ T017: x := o:Args ]...........................................0.23

[ T018: round( i / 1000, 2 ) ]..................................1.60

[ T019: str( i / 1000 ) ]......................................10.00

[ T020: val( s ) ]..............................................0.45

[ T021: val( a [ i % 16 + 1 ] ) ]...............................1.11

[ T022: dtos( d - i % 10000 ) ].................................1.52

[ T023: eval( { || i % 16 } ) ].................................1.56

[ T024: eval( bc := { || i % 16 } ) ]...........................0.96

[ T025: eval( { |x| x % 16 }, i ) ].............................0.67

[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.53

[ T027: eval( { |x| f1( x ) }, i ) ]............................0.85

[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.73

[ T029: x := &( "f1(" + str(i) + ")" ) ].......................25.36

[ T030: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]...............25.38

[ T031: x := valtype( x ) +  valtype( i ) ].....................0.42

[ T032: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ].........10.27

[ T033: x := a[ i % 16 + 1 ] == s ].............................0.41

[ T034: x := a[ i % 16 + 1 ] = s ]..............................0.58

[ T035: x := a[ i % 16 + 1 ] >= s ].............................0.58

[ T036: x := a[ i % 16 + 1 ] <= s ].............................0.59

[ T037: x := a[ i % 16 + 1 ] < s ]..............................0.58

[ T038: x := a[ i % 16 + 1 ] > s ]..............................0.60

[ T039: ascan( a, i % 16 ) ]....................................1.00

[ T040: ascan( a, { |x| x == i % 16 } ) ].......................7.34

[ T041: iif( i%1000==0, a:={}, ), aadd(a,{i,1,.t.,s,s2,a2, ]....9.02

[ T042: x := a ]................................................0.03

[ T043: x := {} ]...............................................0.46

[ T044: f0() ]..................................................0.22

[ T045: f1( i ) ]...............................................0.22

[ T046: f2( c[1...8] ) ]........................................0.26

[ T047: f2( c[1...40000] ) ]....................................0.22

[ T048: f2( @c[1...40000] ) ]...................................0.22

[ T049: f2( @c[1...40000] ), c2 := c ]..........................0.25

[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.35

[ T051: f2( a ) ]...............................................0.17

[ T052: x := f4() ].............................................1.47

[ T053: x := f5() ].............................................0.59

[ T054: x := space(16) ]........................................0.41

[ T055: f_prv( c ) ]............................................0.66

====================================================================

[ total application time: ]...................................112.27

[ total real time: ]..........................................112.27

 

 

03/16/09 20:06:19 Windows XP 5.1.2600 Service Pack 3

Harbour 1.1.0dev (Rev. 10601) (MT)+ Microsoft Visual C 14.0.24999 (32-bit)

THREADS: 2

N_LOOPS: 1000000

[ T000: empty loop overhead ]...................................0.05

====================================================================

[ T001: x := L_C ]..............................................0.84

[ T002: x := L_N ]..............................................0.38

[ T003: x := L_D ]..............................................0.36

[ T004: x := S_C ]..............................................1.02

[ T005: x := S_N ]..............................................0.45

[ T006: x := S_D ]..............................................0.48

[ T007: x := M_C ]..............................................1.28

[ T008: x := M_N ]..............................................0.66

[ T009: x := M_D ]..............................................0.70

[ T010: x := P_C ]..............................................1.27

[ T011: x := P_N ]..............................................0.61

[ T012: x := P_D ]..............................................0.64

[ T013: x := F_C ]..............................................2.03

[ T014: x := F_N ]..............................................1.61

[ T015: x := F_D ]..............................................1.03

[ T016: x := o:Args ]...........................................1.70

[ T017: x := o[2] ].............................................1.25

[ T018: round( i / 1000, 2 ) ]..................................1.44

[ T019: str( i / 1000 ) ].......................................3.94

[ T020: val( s ) ]..............................................2.28

[ T021: val( a [ i % 16 + 1 ] ) ]...............................3.72

[ T022: dtos( d - i % 10000 ) ].................................3.78

[ T023: eval( { || i % 16 } ) ].................................6.50

[ T024: eval( bc := { || i % 16 } ) ]...........................2.39

[ T025: eval( { |x| x % 16 }, i ) ].............................4.50

[ T026: eval( bc := { |x| x % 16 }, i ) ].......................2.36

[ T027: eval( { |x| f1( x ) }, i ) ]............................4.31

[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................2.59

[ T029: x := &( "f1(" + str(i) + ")" ) ].......................43.30

[ T030: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]...............47.59

[ T031: x := valtype( x ) +  valtype( i ) ].....................4.48

[ T032: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........5.94

[ T033: x := a[ i % 16 + 1 ] == s ].............................2.75

[ T034: x := a[ i % 16 + 1 ] = s ]..............................3.00

[ T035: x := a[ i % 16 + 1 ] >= s ].............................3.20

[ T036: x := a[ i % 16 + 1 ] <= s ].............................3.20

[ T037: x := a[ i % 16 + 1 ] < s ]..............................3.17

[ T038: x := a[ i % 16 + 1 ] > s ]..............................3.20

[ T039: ascan( a, i % 16 ) ]....................................2.11

[ T040: ascan( a, { |x| x == i % 16 } ) ]......................22.83

[ T041: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....8.27

[ T042: x := a ]................................................0.59

[ T043: x := {} ]...............................................2.19

[ T044: f0() ]..................................................0.56

[ T045: f1( i ) ]...............................................0.78

[ T046: f2( c[1...8] ) ]........................................1.05

[ T047: f2( c[1...40000] ) ]....................................1.05

[ T048: f2( @c[1...40000] ) ]...................................1.00

[ T049: f2( @c[1...40000] ), c2 := c ]..........................1.19

[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................2.98

[ T051: f2( a ) ]...............................................1.08

[ T052: x := f4() ].............................................7.08

[ T053: x := f5() ].............................................2.64

[ T054: x := space(16) ]........................................2.61

[ T055: f_prv( c ) ]............................................2.08

====================================================================

[ total application time: ]...................................118.78

[ total real time: ]...........................................61.03

 

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

Reply via email to