Hi Mike,
Yes, I know. For comparison, I've made the Harbour test run in MT mode,
too,
first with no threads, then with 2 threads.

I'm interested to see the conclusions (not necessarily from my results).

Brgds,
Viktor

2009/3/16 Mike Evans (Gmail) <[email protected]>

>  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
>
>
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to