Przemyslaw,
> You can also try
> --thread=<n> --scale
> In such version each test is executed <n> times by one thread and then
> simultaneously once by <n> threads. It means that it exploits the worst
> possible cases in synchronization and scalability. It should also quite
> well test spinlocks on multi CPU machines.
>
I've attached this test, with thread=2, this is on a PIV HT, so no real dual
core.
> BTW have you tested the speed difference between _gettid() and _hb_gettid()
> in OS2 GCC builds? Or maybe GCC _gettid() makes exactly the same job as our
> _hb_gettid()?
>
No speed test done, but I think there is only one way to have this info on
OS/2, that is, going through the Dos... API.
Best regards.
Maurilio.
--
__________
| | | |__| Maurilio Longo
|_|_|_|____| farmaconsult s.r.l.
2010.03.25 13:07:35 OS/2 4.50
Harbour 2.1.0dev (Rev. 14225) (MT)+ EMX GNU C 3.3.5 (32-bit) x86
THREADS: 2
N_LOOPS: 1000000
1 th. 2 th. factor
============================================================================
[ T001: x := L_C ]____________________________________ 0.53 2.15 -> 0.25
[ T002: x := L_N ]____________________________________ 0.39 1.80 -> 0.22
[ T003: x := L_D ]____________________________________ 0.37 0.60 -> 0.62
[ T004: x := S_C ]____________________________________ 0.50 0.61 -> 0.82
[ T005: x := S_N ]____________________________________ 0.37 0.57 -> 0.65
[ T006: x := S_D ]____________________________________ 0.36 0.57 -> 0.63
[ T007: x := M->M_C ]_________________________________ 0.55 0.65 -> 0.85
[ T008: x := M->M_N ]_________________________________ 0.43 2.26 -> 0.19
[ T009: x := M->M_D ]_________________________________ 0.42 0.61 -> 0.68
[ T010: x := M->P_C ]_________________________________ 0.49 0.63 -> 0.78
[ T011: x := M->P_N ]_________________________________ 0.41 0.64 -> 0.65
[ T012: x := M->P_D ]_________________________________ 0.42 0.64 -> 0.65
[ T013: x := F_C ]____________________________________ 1.20 0.98 -> 1.23
[ T014: x := F_N ]____________________________________ 0.95 0.77 -> 1.24
[ T015: x := F_D ]____________________________________ 0.60 0.66 -> 0.91
[ T016: x := o:Args ]_________________________________ 0.91 1.86 -> 0.49
[ T017: x := o[2] ]___________________________________ 0.76 0.79 -> 0.97
[ T018: round( i / 1000, 2 ) ]________________________ 1.20 1.26 -> 0.95
[ T019: str( i / 1000 ) ]_____________________________ 6.25 4.37 -> 1.43
[ T020: val( s ) ]____________________________________ 1.26 1.09 -> 1.16
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 2.22 1.97 -> 1.13
[ T022: dtos( d - i % 10000 ) ]_______________________ 2.07 1.88 -> 1.10
[ T023: eval( { || i % 16 } ) ]_______________________ 2.45 2.94 -> 0.83
[ T024: eval( bc := { || i % 16 } ) ]_________________ 1.21 1.49 -> 0.82
[ T025: eval( { |x| x % 16 }, i ) ]___________________ 1.76 2.57 -> 0.68
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 1.26 1.52 -> 0.83
[ T027: eval( { |x| f1( x ) }, i ) ]__________________ 1.94 2.30 -> 0.84
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 1.40 1.90 -> 0.74
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 1.41 1.78 -> 0.79
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 16.38 13.05 -> 1.25
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 17.77 14.72 -> 1.21
[ T032: x := valtype( x ) + valtype( i ) ]___________ 2.09 2.44 -> 0.86
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 6.02 4.61 -> 1.30
[ T034: x := a[ i % 16 + 1 ] == s ]___________________ 1.83 1.70 -> 1.07
[ T035: x := a[ i % 16 + 1 ] = s ]____________________ 1.91 1.79 -> 1.07
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 1.91 1.76 -> 1.08
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 1.91 1.78 -> 1.08
[ T038: x := a[ i % 16 + 1 ] < s ]____________________ 1.91 1.80 -> 1.06
[ T039: x := a[ i % 16 + 1 ] > s ]____________________ 1.90 1.78 -> 1.07
[ T040: ascan( a, i % 16 ) ]__________________________ 1.63 1.48 -> 1.10
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 11.64 11.32 -> 1.03
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 4.43 4.08 -> 1.09
[ T043: x := a ]______________________________________ 0.56 0.69 -> 0.81
[ T044: x := {} ]_____________________________________ 1.07 1.02 -> 1.05
[ T045: f0() ]________________________________________ 0.53 0.88 -> 0.61
[ T046: f1( i ) ]_____________________________________ 0.70 1.00 -> 0.71
[ T047: f2( c[1...8] ) ]______________________________ 0.83 1.09 -> 0.76
[ T048: f2( c[1...40000] ) ]__________________________ 0.83 1.09 -> 0.77
[ T049: f2( @c[1...40000] ) ]_________________________ 0.68 1.09 -> 0.62
[ T050: f2( @c[1...40000] ), c2 := c ]________________ 0.97 1.39 -> 0.70
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 2.14 2.17 -> 0.99
[ T052: f2( a ) ]_____________________________________ 0.86 1.10 -> 0.79
[ T053: x := f4() ]___________________________________ 3.80 2.70 -> 1.41
[ T054: x := f5() ]___________________________________ 1.46 1.46 -> 1.00
[ T055: x := space(16) ]______________________________ 1.19 1.19 -> 1.00
[ T056: f_prv( c ) ]__________________________________ 2.28 2.26 -> 1.01
============================================================================
[ TOTAL ]_________________________________________123.30 123.27 -> 1.00
============================================================================
[ total application time: ].....................................1.55
[ total real time: ]..........................................246.57
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour