Further to what Jim mentioned below, 64-bit-ness does not imply faster execution. On the contrary it means each instruction, data address and data access requires more bits to move across the bus, compared to the 32-bit version, to do the same work. For example to sort a list of words (text) the CPU compares byte codes which do not benefit from having 64-bit registers. But every program variable accessed is done so via a 64-bit address in stead of a 32-bit address, so this places a bigger load on the address bus on every operation, without any benefit at all (the data operated on still fits into 32-bit registers)
If however your application use the features of 64-bit programs then the advantages can be more than these overheads. For the most part this means programs that require access to more than 4 GB of data in RAM. Cheers, _Johan On Tue, Aug 17, 2010 at 4:23 AM, Jim Mauro <james.ma...@oracle.com> wrote: > Typically such performance disparities are due to > changes in the memory footprint with the 64-bit code, > and resulting cache miss rates being higher with the > 64-bit code than the 32-bit code. > > You need to use the Studio tools to profile the code, > and/or cputrack to measure cache hit rates. > > Thanks, > /jim > > > On Aug 16, 2010, at 9:58 PM, Kishore Kumar Pusukuri wrote: > > > Hi, > > I am surprised with the performances of some 64-bit multi-threaded > applications on my AMD Opteron machine. For most of the applications, the > performance of 32-bit version is almost same as the performance of 64-bit > version. However, for a couple of applications, 32-bit versions provide > better performance (running-time is around 76 secs) than 64-bit (running > time is around 96 secs). Could anyone help me to find the reason behind > this, please? > > > > > > $ldd program-64 (64-bit version) > > libpthread.so.1 => /lib/64/libpthread.so.1 > > libstdc++.so.6 => /usr/lib/64/libstdc++.so.6 > > libm.so.2 => /lib/64/libm.so.2 > > libgcc_s.so.1 => /usr/lib/64/libgcc_s.so.1 > > libc.so.1 => /lib/64/libc.so.1 > > > > $ ldd program-32 (32-bit version) > > libpthread.so.1 => /lib/libpthread.so.1 > > libstdc++.so.6 => /usr/lib/libstdc++.so.6 > > libm.so.2 => /lib/libm.so.2 > > libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 > > libc.so.1 => /lib/libc.so.1 > > -- > > This message posted from opensolaris.org > > _______________________________________________ > > perf-discuss mailing list > > perf-discuss@opensolaris.org > > _______________________________________________ > perf-discuss mailing list > perf-discuss@opensolaris.org > -- Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke My blog: http://initialprogramload.blogspot.com
_______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org