Building Harbour x64 with MinGW x64

Moderator: Rathinagiri

Post Reply
User avatar
MigSoft
Posts: 70
Joined: Sat Aug 02, 2008 5:51 am
Location: Santiago - Chile
Contact:

Building Harbour x64 with MinGW x64

Post by MigSoft » Sat Apr 03, 2010 7:34 pm

Hello,

The following link is an attempt to explain how to build Harbour 64 Bits :D

http://mig2soft.com/?p=206
Regards,

MigSoft.

User avatar
luisvasquezcl
Posts: 996
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Has thanked: 5 times
Been thanked: 10 times
Contact:

Post by luisvasquezcl » Sun Apr 04, 2010 1:38 am

Gracias Miguel,
como siempre con tus buenos aportes.
Espero que te encuentres bien despues del sacudón... ;)
Saludos cordiales,
Luis Vasquez.

User avatar
Rathinagiri
Posts: 5095
Joined: Tue Jul 29, 2008 6:30 pm
DBs Used: MariaDB, SQLite, SQLCipher and MySQL
Location: Sivakasi, India
Has thanked: 93 times
Been thanked: 106 times
Contact:

Post by Rathinagiri » Sun Apr 04, 2010 2:13 am

Nice one. Thanks for sharing MigSoft.

Can you feel the speed difference?
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.

User avatar
MigSoft
Posts: 70
Joined: Sat Aug 02, 2008 5:51 am
Location: Santiago - Chile
Contact:

Post by MigSoft » Sun Apr 04, 2010 2:38 pm

Gracias Luis, en realidad fue una experiencia muy fuerte, pero sin problemas.

Rathinagiri,
You notice a subtle increase in the speed of the compiled program, I need to do some comparative tests to see results. :|
The next step is to compile HMG, someone already did :?:
Regards,

MigSoft.

User avatar
Rathinagiri
Posts: 5095
Joined: Tue Jul 29, 2008 6:30 pm
DBs Used: MariaDB, SQLite, SQLCipher and MySQL
Location: Sivakasi, India
Has thanked: 93 times
Been thanked: 106 times
Contact:

Post by Rathinagiri » Sun Apr 04, 2010 7:30 pm

I don't think so...

Let us know about your experiments. :)
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.

User avatar
MigSoft
Posts: 70
Joined: Sat Aug 02, 2008 5:51 am
Location: Santiago - Chile
Contact:

Post by MigSoft » Mon Apr 05, 2010 12:14 am

Hello,

These are the results:

2010.04.04 19:51:26 Windows 7 6.1.7600
Harbour 2.1.0dev (Rev. 14264) MinGW GNU C 4.4.1 (32-bit) x86

THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.05
====================================================================
[ T001: x := L_C ]..............................................0.05
[ T002: x := L_N ]..............................................0.05
[ T003: x := L_D ]..............................................0.05
[ T004: x := S_C ]..............................................0.05
[ T005: x := S_N ]..............................................0.06
[ T006: x := S_D ]..............................................0.06
[ T007: x := M->M_C ]...........................................0.05
[ T008: x := M->M_N ]...........................................0.06
[ T009: x := M->M_D ]...........................................0.06
[ T010: x := M->P_C ]...........................................0.06
[ T011: x := M->P_N ]...........................................0.05
[ T012: x := M->P_D ]...........................................0.06
[ T013: x := F_C ]..............................................0.14
[ T014: x := F_N ]..............................................0.20
[ T015: x := F_D ]..............................................0.11
[ T016: x := o:Args ]...........................................0.11
[ T017: x := o[2] ].............................................0.11
[ T018: round( i / 1000, 2 ) ]..................................0.25
[ T019: str( i / 1000 ) ].......................................0.87
[ T020: val( s ) ]..............................................0.22
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.39
[ T022: dtos( d - i % 10000 ) ].................................0.27
[ T023: eval( { || i % 16 } ) ].................................0.28
[ T024: eval( bc := { || i % 16 } ) ]...........................0.14
[ T025: eval( { |x| x % 16 }, i ) ].............................0.19
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.20
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.30
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.27
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.27
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................1.93
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................2.07
[ T032: x := valtype( x ) + valtype( i ) ].....................0.30
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.84
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.30
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.30
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.30
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.28
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.28
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.31
[ T040: ascan( a, i % 16 ) ]....................................0.22
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................1.97
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.66
[ T043: x := a ]................................................0.06
[ T044: x := {} ]...............................................0.08
[ T045: f0() ]..................................................0.08
[ T046: f1( i ) ]...............................................0.11
[ T047: f2( c[1...8] ) ]........................................0.09
[ T048: f2( c[1...40000] ) ]....................................0.11
[ T049: f2( @c[1...40000] ) ]...................................0.09
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.12
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.41
[ T052: f2( a ) ]...............................................0.11
[ T053: x := f4() ].............................................0.36
[ T054: x := f5() ].............................................0.17
[ T055: x := space(16) ]........................................0.14
[ T056: f_prv( c ) ]............................................0.28
====================================================================
[ total application time: ]....................................19.56
[ total real time: ]...........................................19.99



2010.04.04 19:25:10 Windows 7 6.1.7600
Harbour 2.1.0dev (Rev. 14234) MinGW GNU C 4.4.4 (64-bit) x86-64

THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.06
====================================================================
[ T001: x := L_C ]..............................................0.00
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.00
[ T005: x := S_N ]..............................................0.02
[ T006: x := S_D ]..............................................0.00
[ T007: x := M->M_C ]...........................................0.02
[ T008: x := M->M_N ]...........................................0.00
[ T009: x := M->M_D ]...........................................0.00
[ T010: x := M->P_C ]...........................................0.00
[ T011: x := M->P_N ]...........................................0.02
[ T012: x := M->P_D ]...........................................0.00
[ T013: x := F_C ]..............................................0.11
[ T014: x := F_N ]..............................................0.11
[ T015: x := F_D ]..............................................0.05
[ T016: x := o:Args ]...........................................0.08
[ T017: x := o[2] ].............................................0.06
[ T018: round( i / 1000, 2 ) ]..................................0.11
[ T019: str( i / 1000 ) ].......................................0.27
[ T020: val( s ) ]..............................................0.12
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.25
[ T022: dtos( d - i % 10000 ) ].................................0.20
[ T023: eval( { || i % 16 } ) ].................................0.20
[ T024: eval( bc := { || i % 16 } ) ]...........................0.14
[ T025: eval( { |x| x % 16 }, i ) ].............................0.19
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.12
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.22
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.20
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.20
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................1.64
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................2.06
[ T032: x := valtype( x ) + valtype( i ) ].....................0.22
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.44
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.16
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.17
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.16
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.17
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.16
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.14
[ T040: ascan( a, i % 16 ) ]....................................0.16
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................1.53
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.48
[ T043: x := a ]................................................0.00
[ T044: x := {} ]...............................................0.06
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.08
[ T047: f2( c[1...8] ) ]........................................0.08
[ T048: f2( c[1...40000] ) ]....................................0.06
[ T049: f2( @c[1...40000] ) ]...................................0.08
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.09
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.25
[ T052: f2( a ) ]...............................................0.06
[ T053: x := f4() ].............................................0.28
[ T054: x := f5() ].............................................0.14
[ T055: x := space(16) ]........................................0.09
[ T056: f_prv( c ) ]............................................0.20
====================================================================
[ total application time: ]....................................15.18
[ total real time: ]............................................15.53

"Exe files" for your tests
Attachments
speedtst.zip
(987.18 KiB) Downloaded 222 times
Regards,

MigSoft.

User avatar
Rathinagiri
Posts: 5095
Joined: Tue Jul 29, 2008 6:30 pm
DBs Used: MariaDB, SQLite, SQLCipher and MySQL
Location: Sivakasi, India
Has thanked: 93 times
Been thanked: 106 times
Contact:

Post by Rathinagiri » Mon Apr 05, 2010 4:35 am

Nice. Thanks for sharing MigSoft.
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.

User avatar
Czarny_Pijar
Posts: 172
Joined: Thu Mar 18, 2010 11:31 pm
Location: 19.2341 E 50.2267 N

Post by Czarny_Pijar » Mon Apr 05, 2010 9:53 am

MigSoft wrote:These are the results:
...
(32-bit [ total real time: ]...........................................19.99
(64-bit)[ total real time: ]............................................15.53
Had expected someone to double the speed? Real-life application will benefits even less, they depends mainly on the HDD throughput.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest