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
