Here new set of results with download link included... Please other windows users download and post results here
HTH Angel Przemyslaw Czerpak escribió:
Can you also check what will happen if you rebuild Harbour with: set HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF -DHB_FM_WIN_ALLOC best regards, Przemek
Computer PIV Dual COre 3.0 win 2003 server, used tru VNC 03/29/2009 14:04:15 Windows XP 05.02 Build 03790 Xbase++ (R) Version 1.90 (MT)+ THREADS: 2 N_LOOPS: 1000000 1 th. 2 th. factor ============================================================================ [ T001: x := L_C ]____________________________________ 0.13 0.12 -> 1.08 [ T002: x := L_N ]____________________________________ 0.11 0.09 -> 1.22 [ T003: x := L_D ]____________________________________ 0.08 0.08 -> 1.00 [ T004: x := S_C ]____________________________________ 0.22 0.20 -> 1.10 [ T005: x := S_N ]____________________________________ 0.17 0.16 -> 1.06 [ T006: x := S_D ]____________________________________ 0.18 0.28 -> 0.64 [ T007: x := M->M_C ]_________________________________ 0.47 0.49 -> 0.96 [ T008: x := M->M_N ]_________________________________ 0.34 0.36 -> 0.94 [ T009: x := M->M_D ]_________________________________ 0.34 0.36 -> 0.94 [ T010: x := M->P_C ]_________________________________ 0.47 0.53 -> 0.89 [ T011: x := M->P_N ]_________________________________ 0.58 0.40 -> 1.45 [ T012: x := M->P_D ]_________________________________ 0.77 0.81 -> 0.95 [ T013: x := F_C ]____________________________________ 0.74 0.70 -> 1.06 [ T014: x := F_N ]____________________________________ 0.64 0.58 -> 1.10 [ T015: x := F_D ]____________________________________ 0.59 0.64 -> 0.92 [ T016: x := o:Args ]_________________________________ 0.42 0.47 -> 0.89 [ T017: x := o[2] ]___________________________________ 0.19 0.16 -> 1.19 [ T018: round( i / 1000, 2 ) ]________________________ 3.43 3.33 -> 1.03 [ T019: str( i / 1000 ) ]_____________________________ 21.55 21.41 -> 1.01 [ T020: val( s ) ]____________________________________ 0.96 1.00 -> 0.96 [ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 2.38 2.33 -> 1.02 [ T022: dtos( d - i % 10000 ) ]_______________________ 3.25 3.25 -> 1.00 [ T023: eval( { || i % 16 } ) ]_______________________ 3.01 3.18 -> 0.95 [ T024: eval( bc := { || i % 16 } ) ]_________________ 1.78 1.68 -> 1.06 [ T025: eval( { |x| x % 16 }, i ) ]___________________ 1.38 1.41 -> 0.98 [ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 1.05 1.09 -> 0.96 [ T027: eval( { |x| f1( x ) }, i ) ]__________________ 1.56 1.71 -> 0.91 [ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 1.42 1.55 -> 0.92 [ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 2.04 1.99 -> 1.03 [ T030: x := &( 'f1(' + str(i) + ')' ) ]______________ 60.67 60.14 -> 1.01 [ T031: bc := &( '{|x|f1(x)}' ), eval( bc, i ) ]______ 61.03 61.48 -> 0.99 [ T032: x := valtype( x ) + valtype( i ) ]___________ 1.02 0.90 -> 1.13 [ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 23.69 23.80 -> 1.00 [ T034: x := a[ i % 16 + 1 ] == s ]___________________ 0.90 0.94 -> 0.96 [ T035: x := a[ i % 16 + 1 ] = s ]____________________ 1.36 1.38 -> 0.99 [ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 1.35 1.38 -> 0.98 [ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 1.33 1.40 -> 0.95 [ T038: x := a[ i % 16 + 1 ] < s ]____________________ 1.32 1.35 -> 0.98 [ T039: x := a[ i % 16 + 1 ] > s ]____________________ 1.26 1.36 -> 0.93 [ T040: ascan( a, i % 16 ) ]__________________________ 2.11 2.10 -> 1.00 [ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 14.21 14.74 -> 0.96 [ T042: iif( i%1000==0, a:={}, ), aadd(a,{i,1,.t.,s, ] 20.09 20.55 -> 0.98 [ T043: x := a ]______________________________________ 0.12 0.11 -> 1.09 [ T044: x := {} ]_____________________________________ 1.18 1.46 -> 0.81 [ T045: f0() ]________________________________________ 0.47 0.35 -> 1.34 [ T046: f1( i ) ]_____________________________________ 0.54 0.47 -> 1.15 [ T047: f2( c[1...8] ) ]______________________________ 0.42 0.43 -> 0.98 [ T048: f2( c[1...40000] ) ]__________________________ 0.45 0.45 -> 1.00 [ T049: f2( @c[1...40000] ) ]_________________________ 0.38 0.39 -> 0.97 [ T050: f2( @c[1...40000] ), c2 := c ]________________ 0.51 0.60 -> 0.85 [ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 0.83 0.76 -> 1.09 [ T052: f2( a ) ]_____________________________________ 0.41 0.40 -> 1.02 [ T053: x := f4() ]___________________________________ 2.72 2.63 -> 1.03 [ T054: x := f5() ]___________________________________ 1.22 1.26 -> 0.97 [ T055: x := space(16) ]______________________________ 0.85 0.84 -> 1.01 [ T056: f_prv( c ) ]__________________________________ 1.43 1.39 -> 1.03 ============================================================================ [ TOTAL ]_________________________________________252.12 253.42 -> 0.99 ============================================================================ [ total application time: ]...................................505.66 [ total real time: ]..........................................505.66 It went ok, however only processor 1 was at 100% Compiler and Enviroment: set HB_COMPILER=msvc set HB_VISUALC_VER=90 set HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF 03/29/09 14:12:42 Windows Server 2003 / XP x64 5.2.3790 Harbour 1.1.0dev (Rev. 10718) (MT)+ Microsoft Visual C++ 14.0.24999 (32-bit) THREADS: 2 N_LOOPS: 1000000 1 th. 2 th. factor ============================================================================ [ T001: x := L_C ]____________________________________ 0.28 0.25 -> 1.13 [ T002: x := L_N ]____________________________________ 0.19 0.16 -> 1.20 [ T003: x := L_D ]____________________________________ 0.16 0.19 -> 0.84 [ T004: x := S_C ]____________________________________ 0.30 0.27 -> 1.12 [ T005: x := S_N ]____________________________________ 0.19 0.19 -> 0.99 [ T006: x := S_D ]____________________________________ 0.22 0.19 -> 1.16 [ T007: x := M->M_C ]_________________________________ 0.33 0.31 -> 1.05 [ T008: x := M->M_N ]_________________________________ 0.25 0.23 -> 1.07 [ T009: x := M->M_D ]_________________________________ 0.22 0.22 -> 1.00 [ T010: x := M->P_C ]_________________________________ 0.27 0.27 -> 1.00 [ T011: x := M->P_N ]_________________________________ 0.22 0.25 -> 0.88 [ T012: x := M->P_D ]_________________________________ 0.23 0.24 -> 1.00 [ T013: x := F_C ]____________________________________ 0.88 0.83 -> 1.06 [ T014: x := F_N ]____________________________________ 0.72 0.66 -> 1.09 [ T015: x := F_D ]____________________________________ 0.41 0.38 -> 1.08 [ T016: x := o:Args ]_________________________________ 0.64 0.69 -> 0.93 [ T017: x := o[2] ]___________________________________ 0.44 0.47 -> 0.93 [ T018: round( i / 1000, 2 ) ]________________________ 0.72 0.64 -> 1.12 [ T019: str( i / 1000 ) ]_____________________________ 1.80 1.59 -> 1.13 [ T020: val( s ) ]____________________________________ 0.94 0.89 -> 1.05 [ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 1.58 1.45 -> 1.09 [ T022: dtos( d - i % 10000 ) ]_______________________ 1.58 1.31 -> 1.20 [ T023: eval( { || i % 16 } ) ]_______________________ 6.41 8.70 -> 0.74 [ T024: eval( bc := { || i % 16 } ) ]_________________ 4.83 6.06 -> 0.80 [ T025: eval( { |x| x % 16 }, i ) ]___________________ 5.55 7.45 -> 0.74 [ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 4.86 5.99 -> 0.81 [ T027: eval( { |x| f1( x ) }, i ) ]__________________ 10.50 14.55 -> 0.72 [ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 9.49 12.95 -> 0.73 [ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 4.55 5.76 -> 0.79 [ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 19.92 24.89 -> 0.80 [ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 22.70 29.44 -> 0.77 [ T032: x := valtype( x ) + valtype( i ) ]___________ 1.75 1.84 -> 0.95 [ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 2.99 3.19 -> 0.94 [ T034: x := a[ i % 16 + 1 ] == s ]___________________ 1.20 1.24 -> 0.97 [ T035: x := a[ i % 16 + 1 ] = s ]____________________ 1.30 1.33 -> 0.98 [ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 1.33 1.28 -> 1.04 [ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 1.30 1.30 -> 1.00 [ T038: x := a[ i % 16 + 1 ] < s ]____________________ 1.30 1.41 -> 0.92 [ T039: x := a[ i % 16 + 1 ] > s ]____________________ 1.39 1.41 -> 0.99 [ T040: ascan( a, i % 16 ) ]__________________________ 1.34 1.23 -> 1.09 [ T041: ascan( a, { |x| x == i % 16 } ) ]_____________ 52.09 72.94 -> 0.71 [ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 4.22 4.84 -> 0.87 [ T043: x := a ]______________________________________ 0.33 0.38 -> 0.87 [ T044: x := {} ]_____________________________________ 0.97 1.67 -> 0.58 [ T045: f0() ]________________________________________ 3.16 3.69 -> 0.86 [ T046: f1( i ) ]_____________________________________ 3.78 5.11 -> 0.74 [ T047: f2( c[1...8] ) ]______________________________ 4.00 5.17 -> 0.77 [ T048: f2( c[1...40000] ) ]__________________________ 3.91 5.09 -> 0.77 [ T049: f2( @c[1...40000] ) ]_________________________ 3.83 5.02 -> 0.76 [ T050: f2( @c[1...40000] ), c2 := c ]________________ 3.84 5.24 -> 0.73 [ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 12.30 16.59 -> 0.74 [ T052: f2( a ) ]_____________________________________ 3.91 5.11 -> 0.76 [ T053: x := f4() ]___________________________________ 6.26 7.95 -> 0.79 [ T054: x := f5() ]___________________________________ 3.95 5.53 -> 0.71 [ T055: x := space(16) ]______________________________ 1.16 1.22 -> 0.95 [ T056: f_prv( c ) ]__________________________________ 5.67 7.53 -> 0.75 ============================================================================ [ TOTAL ]_________________________________________228.59 294.75 -> 0.78 ============================================================================ [ total application time: ]...................................689.98 [ total real time: ]..........................................523.52 Both processors at 100%, occasionally 1st. proc was at 60% Compiler and Enviroment: set HB_COMPILER=msvc set HB_VISUALC_VER=90 set HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF -DHB_FM_WIN_ALLOC 03/29/09 14:21:25 Windows Server 2003 / XP x64 5.2.3790 Harbour 1.1.0dev (Rev. 10718) (MT)+ Microsoft Visual C++ 14.0.24999 (32-bit) THREADS: 2 N_LOOPS: 1000000 1 th. 2 th. factor ============================================================================ [ T001: x := L_C ]____________________________________ 0.31 0.30 -> 1.05 [ T002: x := L_N ]____________________________________ 0.20 0.19 -> 1.09 [ T003: x := L_D ]____________________________________ 0.20 0.19 -> 1.08 [ T004: x := S_C ]____________________________________ 0.34 0.34 -> 1.00 [ T005: x := S_N ]____________________________________ 0.23 0.24 -> 1.00 [ T006: x := S_D ]____________________________________ 0.25 0.23 -> 1.07 [ T007: x := M->M_C ]_________________________________ 0.38 0.41 -> 0.92 [ T008: x := M->M_N ]_________________________________ 0.28 0.30 -> 0.95 [ T009: x := M->M_D ]_________________________________ 0.28 0.28 -> 1.00 [ T010: x := M->P_C ]_________________________________ 0.36 0.33 -> 1.09 [ T011: x := M->P_N ]_________________________________ 0.28 0.28 -> 1.00 [ T012: x := M->P_D ]_________________________________ 0.28 0.28 -> 1.00 [ T013: x := F_C ]____________________________________ 1.03 1.03 -> 1.00 [ T014: x := F_N ]____________________________________ 0.91 0.80 -> 1.14 [ T015: x := F_D ]____________________________________ 0.49 0.48 -> 1.00 [ T016: x := o:Args ]_________________________________ 0.73 0.83 -> 0.89 [ T017: x := o[2] ]___________________________________ 0.55 0.58 -> 0.94 [ T018: round( i / 1000, 2 ) ]________________________ 0.91 0.84 -> 1.07 [ T019: str( i / 1000 ) ]_____________________________ 2.13 2.03 -> 1.05 [ T020: val( s ) ]____________________________________ 1.13 1.05 -> 1.07 [ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 1.78 1.73 -> 1.03 [ T022: dtos( d - i % 10000 ) ]_______________________ 6.06 4.66 -> 1.30 [ T023: eval( { || i % 16 } ) ]_______________________ 16.69 12.03 -> 1.39 [ T024: eval( bc := { || i % 16 } ) ]_________________ 14.28 10.22 -> 1.40 [ T025: eval( { |x| x % 16 }, i ) ]___________________ 16.49 11.73 -> 1.40 [ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 15.19 11.22 -> 1.35 [ T027: eval( { |x| f1( x ) }, i ) ]__________________ 25.86 18.76 -> 1.38 [ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 25.16 18.03 -> 1.40 [ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 14.58 10.22 -> 1.43 [ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 24.30 22.86 -> 1.06 [ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 25.30 24.38 -> 1.04 [ T032: x := valtype( x ) + valtype( i ) ]___________ 1.61 1.77 -> 0.91 [ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 2.89 2.91 -> 0.99 [ T034: x := a[ i % 16 + 1 ] == s ]___________________ 1.19 1.11 -> 1.07 [ T035: x := a[ i % 16 + 1 ] = s ]____________________ 1.30 1.34 -> 0.97 [ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 1.34 1.33 -> 1.01 [ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 1.38 1.31 -> 1.05 [ T038: x := a[ i % 16 + 1 ] < s ]____________________ 1.33 1.22 -> 1.09 [ T039: x := a[ i % 16 + 1 ] > s ]____________________ 1.34 1.33 -> 1.01 [ T040: ascan( a, i % 16 ) ]__________________________ 1.23 1.19 -> 1.04 [ T041: ascan( a, { |x| x == i % 16 } ) ]_____________102.17 77.77 -> 1.31 [ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 6.16 5.24 -> 1.18 [ T043: x := a ]______________________________________ 0.33 0.31 -> 1.05 [ T044: x := {} ]_____________________________________ 1.02 1.13 -> 0.90 [ T045: f0() ]________________________________________ 8.11 5.89 -> 1.38 [ T046: f1( i ) ]_____________________________________ 8.83 6.89 -> 1.28 [ T047: f2( c[1...8] ) ]______________________________ 8.95 6.45 -> 1.39 [ T048: f2( c[1...40000] ) ]__________________________ 8.92 6.84 -> 1.30 [ T049: f2( @c[1...40000] ) ]_________________________ 8.72 6.83 -> 1.28 [ T050: f2( @c[1...40000] ), c2 := c ]________________ 9.39 6.86 -> 1.37 [ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 18.05 15.31 -> 1.18 [ T052: f2( a ) ]_____________________________________ 8.95 6.89 -> 1.30 [ T053: x := f4() ]___________________________________ 11.74 9.58 -> 1.23 [ T054: x := f5() ]___________________________________ 9.11 6.84 -> 1.33 [ T055: x := space(16) ]______________________________ 1.08 1.06 -> 1.02 [ T056: f_prv( c ) ]__________________________________ 14.00 10.42 -> 1.34 ============================================================================ [ TOTAL ]_________________________________________436.06 344.65 -> 1.27 ============================================================================ [ total application time: ]..................................1025.06 [ total real time: ]..........................................780.83 Both processors at 100% most of the time, slighttly more used second than first Tests made with: http://rapidshare.com/files/215014183/speedhb.zip.html MD5: BE33161B84F0C8815AAB628C1341CC55 Download and test yourself on true multiprocessor windows pc.
_______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour