You can see the first results of testing the new MinGW 14.1 (64-bit) with the Harbour compiler in ST amd MT modes below:
Code: Select all
2024-05-08 16:38:30 Windows 10 10.0
Harbour 3.2.0dev (r2404101339) MinGW GNU C 14.1 (64-bit) x86-64
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.02
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.02
[ T004: x := S_C ]..............................................0.02
[ T005: x := S_N ]..............................................0.02
[ T006: x := S_D ]..............................................0.02
[ T007: x := M->M_C ]...........................................0.02
[ T008: x := M->M_N ]...........................................0.02
[ T009: x := M->M_D ]...........................................0.02
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.02
[ T012: x := M->P_D ]...........................................0.02
[ T013: x := F_C ]..............................................0.02
[ T014: x := F_N ]..............................................0.02
[ T015: x := F_D ]..............................................0.02
[ T016: x := o:Args ]...........................................0.05
[ T017: x := o[ 2 ] ]...........................................0.05
[ T018: Round( i / 1000, 2 ) ]..................................0.08
[ T019: Str( i / 1000 ) ].......................................0.22
[ T020: Val( s ) ]..............................................0.08
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.11
[ T022: DToS( d - i % 10000 ) ].................................0.13
[ T023: Eval( {|| i % 16 } ) ]..................................0.14
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.08
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.11
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.08
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.13
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.09
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.09
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................0.72
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........0.91
[ T032: x := ValType( x ) + ValType( i ) ]......................0.11
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.25
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.08
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.09
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.09
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.09
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.09
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.09
[ T040: AScan( a, i % 16 ) ]....................................0.11
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................0.94
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.30
[ T043: x := a ]................................................0.02
[ T044: x := {} ]...............................................0.03
[ T045: f0() ]..................................................0.02
[ T046: f1( i ) ]...............................................0.03
[ T047: f2( c[1...8] ) ]........................................0.03
[ T048: f2( c[1...40000] ) ]....................................0.02
[ T049: f2( @c[1...40000] ) ]...................................0.02
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.03
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.09
[ T052: f2( a ) ]...............................................0.03
[ T053: x := f4() ].............................................0.13
[ T054: x := f5() ].............................................0.08
[ T055: x := Space( 16 ) ]......................................0.06
[ T056: f_prv( c ) ]............................................0.09
====================================================================
[ total application time: ].....................................7.09
[ total real time: ]............................................7.11
2024-05-08 16:41:12 Windows 10 10.0
Harbour 3.2.0dev (r2404101339) (MT)+ MinGW GNU C 14.1 (64-bit) x86-64
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.84
[ T002: x := L_N ]..............................................0.28
[ T003: x := L_D ]..............................................0.34
[ T004: x := S_C ]..............................................0.78
[ T005: x := S_N ]..............................................1.27
[ T006: x := S_D ]..............................................1.05
[ T007: x := M->M_C ]...........................................1.33
[ T008: x := M->M_N ]...........................................1.22
[ T009: x := M->M_D ]...........................................1.22
[ T010: x := M->P_C ]...........................................1.27
[ T011: x := M->P_N ]...........................................1.23
[ T012: x := M->P_D ]...........................................1.52
[ T013: x := F_C ]..............................................0.55
[ T014: x := F_N ]..............................................0.70
[ T015: x := F_D ]..............................................0.64
[ T016: x := o:Args ]...........................................6.61
[ T017: x := o[ 2 ] ]...........................................2.05
[ T018: Round( i / 1000, 2 ) ]..................................8.72
[ T019: Str( i / 1000 ) ]......................................12.92
[ T020: Val( s ) ]..............................................8.77
[ T021: Val( a [ i % 16 + 1 ] ) ]..............................11.33
[ T022: DToS( d - i % 10000 ) ]................................11.42
[ T023: Eval( {|| i % 16 } ) ].................................17.70
[ T024: Eval( bc := {|| i % 16 } ) ]............................9.08
[ T025: Eval( {| x | x % 16 }, i ) ]...........................18.73
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................9.08
[ T027: Eval( {| x | f1( x ) }, i ) ]..........................18.61
[ T028: Eval( bc := {| x | f1( x ) }, i ) ]....................10.86
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ].............10.80
[ T030: x := &( "f1(" + Str( i ) + ")" ) ].....................17.77
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ].........20.66
[ T032: x := ValType( x ) + ValType( i ) ].....................11.80
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ].........12.14
[ T034: x := a[ i % 16 + 1 ] == s ].............................9.22
[ T035: x := a[ i % 16 + 1 ] = s ]..............................9.28
[ T036: x := a[ i % 16 + 1 ] >= s ].............................9.70
[ T037: x := a[ i % 16 + 1 ] <= s ].............................9.89
[ T038: x := a[ i % 16 + 1 ] < s ]..............................9.89
[ T039: x := a[ i % 16 + 1 ] > s ]..............................9.72
[ T040: AScan( a, i % 16 ) ]...................................10.53
[ T041: AScan( a, {| x | x == i % 16 } ) ].....................20.42
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]...17.70
[ T043: x := a ]................................................2.39
[ T044: x := {} ]...............................................8.20
[ T045: f0() ]..................................................3.50
[ T046: f1( i ) ]...............................................4.89
[ T047: f2( c[1...8] ) ]........................................4.61
[ T048: f2( c[1...40000] ) ]....................................4.61
[ T049: f2( @c[1...40000] ) ]...................................4.72
[ T050: f2( @c[1...40000] ), c2 := c ]..........................6.58
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................9.67
[ T052: f2( a ) ]...............................................4.67
[ T053: x := f4() ]............................................10.34
[ T054: x := f5() ].............................................9.50
[ T055: x := Space( 16 ) ]......................................8.02
[ T056: f_prv( c ) ]...........................................10.53
====================================================================
[ total application time: ]....................................22.50
[ total real time: ]............................................6.79
Your feedback is welcome.