www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: Is DMD 2.052 32-bit?

reply lurker <a a.a> writes:
Jonathan M Davis Wrote:

 Now, assuming that all of that is taken care, if you're using a 32-bit binary
on 
 a 64-bit system, you're still going to be restricted on how much that program 
 can use. It doesn't use the native word size of the machine to do what it
does, 
 and in many cases, running a 32-bit program on a 64-bit machine is slower than 
 running a 64-bit version of that program on that machine (though that's going
to 
 vary from program to program, since there are  obviously quite a few factors 
 which affect efficiency).

The efficiency claim is true. 64-bit architures have much more registers. This can effectively double the code's performance in most cases. Loads and stores can also use full 64 bits of bandwidth instead of 32. Thus again twice as much speed. In general if you worry about larger binary size, use UPX. Other than that, 64 bit code outperforms the 32 bit. We want to keep the fastest compiler title, right?
Mar 11 2011
next sibling parent "Nick Sabalausky" <a a.a> writes:
"lurker" <a a.a> wrote in message news:ile2kg$2klo$1 digitalmars.com...
 Jonathan M Davis Wrote:

 Now, assuming that all of that is taken care, if you're using a 32-bit 
 binary on
 a 64-bit system, you're still going to be restricted on how much that 
 program
 can use. It doesn't use the native word size of the machine to do what it 
 does,
 and in many cases, running a 32-bit program on a 64-bit machine is slower 
 than
 running a 64-bit version of that program on that machine (though that's 
 going to
 vary from program to program, since there are  obviously quite a few 
 factors
 which affect efficiency).

The efficiency claim is true. 64-bit architures have much more registers. This can effectively double the code's performance in most cases. Loads and stores can also use full 64 bits of bandwidth instead of 32. Thus again twice as much speed. In general if you worry about larger binary size, use UPX. Other than that, 64 bit code outperforms the 32 bit. We want to keep the fastest compiler title, right?

OTOH, 32-bit code on 64-bit already vastly outperforms 32-bit code on a 32-bit machine anyway.
Mar 11 2011
prev sibling parent Russel Winder <russel russel.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2011-03-11 at 16:02 -0500, lurker wrote:
[ . . . ]
 The efficiency claim is true. 64-bit architures have much more
 registers. This can effectively double the code's performance in most
 cases. Loads and stores can also use full 64 bits of bandwidth instead
 of 32. Thus again twice as much speed. In general if you worry about
 larger binary size, use UPX. Other than that, 64 bit code outperforms
 the 32 bit. We want to keep the fastest compiler title, right?

There are a large number of assumptions in the claim of "twice as much speed". All the AMD64 registers and ALUs are 64-bit wide but are all the caches? Are all the buses to memory? Are all the memory structures? Is the clock speed the same? Are all the components clocked in the same way? Has anyone got actual experimental data? Is there a benchmark suite? My preference for a 64-bit DMD relate to simplicity of use on Debian and Ubuntu where the packaging is far simpler if 64-bit executables are used throughout -- if those executables are dynamically linked. If they are statically linked there is not the same issues, but then physical size of executable becomes an issue. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Mar 11 2011