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

Reply via email to