Pentium 4 2.4GHz 256MB ram, WindowsNT 4.0 workstation. Program complied once and executed 3 times, the middle result is given. Harbour was complied with -DHB_FM_STATISTICS_OFF
Either Clipper is that slow, or WinNT does not run DOS programs too fast. (or Harbour just RULES!!) Clipper 5.2e + Blinker 4.10 clipper speedtst /w/n blinker fi speedtst 03/18/09 13:58:38 DOS 5.00 Clipper (R) 5.2e Intl. (x216) (1995.02.07) THREADS: 0 N_LOOPS: 1000000 [ T000: empty loop overhead ]...................................1.54 ==================================================================== [ T001: x := L_C ]..............................................0.16 [ T002: x := L_N ]..............................................0.16 [ T003: x := L_D ]..............................................0.16 [ T004: x := S_C ]..............................................0.17 [ T005: x := S_N ]..............................................0.16 [ T006: x := S_D ]..............................................0.16 [ T007: x := M->M_C ]...........................................0.49 [ T008: x := M->M_N ]...........................................0.44 [ T009: x := M->M_D ]...........................................0.44 [ T010: x := M->P_C ]...........................................0.44 [ T011: x := M->P_N ]...........................................0.49 [ T012: x := M->P_D ]...........................................0.44 [ T013: x := F_C ]..............................................2.03 [ T014: x := F_N ]..............................................3.56 [ T015: x := F_D ]..............................................1.21 [ T016: x := o:Args ]...........................................1.37 [ T017: x := o[2] ].............................................0.49 [ T018: round( i / 1000, 2 ) ]..................................5.11 [ T019: str( i / 1000 ) ].......................................5.27 [ T020: val( s ) ]..............................................4.17 [ T021: val( a [ i % 16 + 1 ] ) ]...............................8.18 [ T022: dtos( d - i % 10000 ) ].................................5.82 [ T023: eval( { || i % 16 } ) ].................................4.78 [ T024: eval( bc := { || i % 16 } ) ]...........................3.73 [ T025: eval( { |x| x % 16 }, i ) ].............................4.40 [ T026: eval( bc := { |x| x % 16 }, i ) ].......................3.78 [ T027: eval( { |x| f1( x ) }, i ) ]............................2.86 [ T028: eval( bc := { |x| f1( x ) }, i ) ]......................2.19 [ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................2.97 [ T030: x := &( "f1(" + str(i) + ")" ) ].......................24.71 [ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]...............26.97 [ T032: x := valtype( x ) + valtype( i ) ].....................3.35 [ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ].........21.30 [ T034: x := a[ i % 16 + 1 ] == s ].............................4.23 [ T035: x := a[ i % 16 + 1 ] = s ]..............................4.94 [ T036: x := a[ i % 16 + 1 ] >= s ].............................4.89 [ T037: x := a[ i % 16 + 1 ] <= s ].............................4.94 [ T038: x := a[ i % 16 + 1 ] < s ]..............................5.00 [ T039: x := a[ i % 16 + 1 ] > s ]..............................4.94 [ T040: ascan( a, i % 16 ) ]...................................14.77 [ T041: ascan( a, { |x| x == i % 16 } ) ]......................48.55 [ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]...12.30 [ T043: x := a ]................................................0.17 [ T044: x := {} ]...............................................0.54 [ T045: f0() ]..................................................0.66 [ T046: f1( i ) ]...............................................0.88 [ T047: f2( c[1...8] ) ]........................................0.76 [ T048: f2( c[1...40000] ) ]....................................0.77 [ T049: f2( @c[1...40000] ) ]...................................0.77 [ T050: f2( @c[1...40000] ), c2 := c ]..........................1.15 [ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................1.32 [ T052: f2( a ) ]...............................................0.76 [ T053: x := f4() ].............................................6.59 [ T054: x := f5() ].............................................1.48 [ T055: x := space(16) ]........................................0.71 [ T056: f_prv( c ) ]............................................2.20 ==================================================================== [ total application time: ]...................................351.52 [ total real time: ]..........................................351.52 ..\bin\hbmk2 -gc3 speedtst /w /n 03/18/09 14:15:50 Windows NT 4.0.1381 Service Pack 6 Harbour 1.1.0dev (Rev. 10644) Borland C++ 5.5.1 (32-bit) THREADS: 0 N_LOOPS: 1000000 [ T000: empty loop overhead ]...................................0.08 ==================================================================== [ T001: x := L_C ]..............................................0.09 [ T002: x := L_N ]..............................................0.07 [ T003: x := L_D ]..............................................0.07 [ T004: x := S_C ]..............................................0.13 [ T005: x := S_N ]..............................................0.10 [ T006: x := S_D ]..............................................0.11 [ T007: x := M->M_C ]...........................................0.15 [ T008: x := M->M_N ]...........................................0.13 [ T009: x := M->M_D ]...........................................0.13 [ T010: x := M->P_C ]...........................................0.15 [ T011: x := M->P_N ]...........................................0.12 [ T012: x := M->P_D ]...........................................0.12 [ T013: x := F_C ]..............................................0.35 [ T014: x := F_N ]..............................................0.61 [ T015: x := F_D ]..............................................0.24 [ T016: x := o:Args ]...........................................0.36 [ T017: x := o[2] ].............................................0.26 [ T018: round( i / 1000, 2 ) ]..................................0.54 [ T019: str( i / 1000 ) ].......................................1.59 [ T020: val( s ) ]..............................................0.67 [ T021: val( a [ i % 16 + 1 ] ) ]...............................1.18 [ T022: dtos( d - i % 10000 ) ].................................1.35 [ T023: eval( { || i % 16 } ) ].................................0.94 [ T024: eval( bc := { || i % 16 } ) ]...........................0.59 [ T025: eval( { |x| x % 16 }, i ) ].............................0.73 [ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.57 [ T027: eval( { |x| f1( x ) }, i ) ]............................0.83 [ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.71 [ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.71 [ T030: x := &( "f1(" + str(i) + ")" ) ]........................7.60 [ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................9.33 [ T032: x := valtype( x ) + valtype( i ) ].....................0.86 [ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........2.03 [ T034: x := a[ i % 16 + 1 ] == s ].............................0.73 [ T035: x := a[ i % 16 + 1 ] = s ]..............................0.82 [ T036: x := a[ i % 16 + 1 ] >= s ].............................0.82 [ T037: x := a[ i % 16 + 1 ] <= s ].............................0.82 [ T038: x := a[ i % 16 + 1 ] < s ]..............................0.82 [ T039: x := a[ i % 16 + 1 ] > s ]..............................0.84 [ T040: ascan( a, i % 16 ) ]....................................0.69 [ T041: ascan( a, { |x| x == i % 16 } ) ].......................6.57 [ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....3.05 [ T043: x := a ]................................................0.10 [ T044: x := {} ]...............................................0.30 [ T045: f0() ]..................................................0.15 [ T046: f1( i ) ]...............................................0.27 [ T047: f2( c[1...8] ) ]........................................0.25 [ T048: f2( c[1...40000] ) ]....................................0.25 [ T049: f2( @c[1...40000] ) ]...................................0.25 [ T050: f2( @c[1...40000] ), c2 := c ]..........................0.30 [ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.91 [ T052: f2( a ) ]...............................................0.27 [ T053: x := f4() ].............................................1.94 [ T054: x := f5() ].............................................0.55 [ T055: x := space(16) ]........................................0.41 [ T056: f_prv( c ) ]............................................0.81 ==================================================================== [ total application time: ]....................................59.91 [ total real time: ]...........................................59.97 ..\bin\hbmk2 -mt -gc3 speedtst /w /n 03/18/09 14:22:42 Windows NT 4.0.1381 Service Pack 6 Harbour 1.1.0dev (Rev. 10644) (MT) Borland C++ 5.5.1 (32-bit) THREADS: 0 N_LOOPS: 1000000 [ T000: empty loop overhead ]...................................0.10 ==================================================================== [ T001: x := L_C ]..............................................0.10 [ T002: x := L_N ]..............................................0.06 [ T003: x := L_D ]..............................................0.05 [ T004: x := S_C ]..............................................0.14 [ T005: x := S_N ]..............................................0.09 [ T006: x := S_D ]..............................................0.10 [ T007: x := M->M_C ]...........................................0.17 [ T008: x := M->M_N ]...........................................0.14 [ T009: x := M->M_D ]...........................................0.14 [ T010: x := M->P_C ]...........................................0.17 [ T011: x := M->P_N ]...........................................0.14 [ T012: x := M->P_D ]...........................................0.14 [ T013: x := F_C ]..............................................0.47 [ T014: x := F_N ]..............................................0.72 [ T015: x := F_D ]..............................................0.27 [ T016: x := o:Args ]...........................................0.46 [ T017: x := o[2] ].............................................0.26 [ T018: round( i / 1000, 2 ) ]..................................0.72 [ T019: str( i / 1000 ) ].......................................2.17 [ T020: val( s ) ]..............................................0.78 [ T021: val( a [ i % 16 + 1 ] ) ]...............................1.33 [ T022: dtos( d - i % 10000 ) ].................................1.51 [ T023: eval( { || i % 16 } ) ].................................1.29 [ T024: eval( bc := { || i % 16 } ) ]...........................0.66 [ T025: eval( { |x| x % 16 }, i ) ].............................1.01 [ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.67 [ T027: eval( { |x| f1( x ) }, i ) ]............................1.19 [ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.86 [ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.85 [ T030: x := &( "f1(" + str(i) + ")" ) ]........................9.22 [ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]...............12.25 [ T032: x := valtype( x ) + valtype( i ) ].....................1.17 [ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........2.10 [ T034: x := a[ i % 16 + 1 ] == s ].............................0.75 [ T035: x := a[ i % 16 + 1 ] = s ]..............................0.83 [ T036: x := a[ i % 16 + 1 ] >= s ].............................0.85 [ T037: x := a[ i % 16 + 1 ] <= s ].............................0.85 [ T038: x := a[ i % 16 + 1 ] < s ]..............................0.84 [ T039: x := a[ i % 16 + 1 ] > s ]..............................0.85 [ T040: ascan( a, i % 16 ) ]....................................0.82 [ T041: ascan( a, { |x| x == i % 16 } ) ].......................8.59 [ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....2.42 [ T043: x := a ]................................................0.11 [ T044: x := {} ]...............................................0.43 [ T045: f0() ]..................................................0.21 [ T046: f1( i ) ]...............................................0.38 [ T047: f2( c[1...8] ) ]........................................0.35 [ T048: f2( c[1...40000] ) ]....................................0.35 [ T049: f2( @c[1...40000] ) ]...................................0.34 [ T050: f2( @c[1...40000] ), c2 := c ]..........................0.38 [ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................1.00 [ T052: f2( a ) ]...............................................0.36 [ T053: x := f4() ].............................................2.23 [ T054: x := f5() ].............................................0.80 [ T055: x := space(16) ]........................................0.58 [ T056: f_prv( c ) ]............................................1.27 ==================================================================== [ total application time: ]....................................72.69 [ total real time: ]...........................................72.76 Chen. _______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour