J
jcc
Since the size of integer is fixed (32 bits) on any platform, does java
program run on 64-bit platform as fast as on 32-bit platform?
program run on 64-bit platform as fast as on 32-bit platform?
Since the size of integer is fixed (32 bits) on any platform, does java
program run on 64-bit platform as fast as on 32-bit platform?
jcc said:Since the size of integer is fixed (32 bits) on any platform, does java
program run on 64-bit platform as fast as on 32-bit platform?
jmcgill said:....
A 64-bit processor should have an order of magnitude more registers
compared to a 32-bit processor.
"an order of magnitude"
^^^^^^^^^^^^^^^^^^^^^^
I guess you're counting, like the processors, in base 2
"an order of magnitude"
^^^^^^^^^^^^^^^^^^^^^^
I guess you're counting, like the processors, in base 2
Seriously though, a 32 bit x86 can be considered to have
8 GPR (general purpose register) and 8 FPR (floating-point
register)... You won't find many 64 bit CPUs having
80 GPR and 80 FPR these days (though there have been
some having as much as 64 GPR IIRC, but this isn't very
common on the most successfull 64 bit platforms Java
runs on today if I'm not mistaken).
Just nitpicking that said, I agree with everything you said!
Oliver said:It's been a long time since I've done development in assembly,
rotating window circular-buffer thing to
emulate an infinite number of registers, given sufficient amount of RAM.
jmcgill said:It's been less than a week for me
If you have to load a value from RAM, you not only are defeating the
purpose of a register access, but you are also replacing register access,
the fastest operation in the datapath, with memory access, the slowest.
Oliver said:Something like that, anyway. It's been a couple of years since I've
worked on this architecture.
Oliver said:It's been a long time since I've done development in assembly, but I
thought it was only Intel's x86 design which was register-starved, and most
other architectures had a lot more.
I vaguely remember one processor I worked with (Motorola
PowerPC?) which had something like 120 physical registers
I try to avoid any routine that needs more than 2 or 4 concurrent
registers anyway. My sanity depends on that
Roedy said:Try writing multiprecision routines e.g. 64 bit divide with 16 bit
registers or analog. You soon feel like a one-armed juggler.
Oliver said:It's been a long time since I've done development in assembly, but I
thought it was only Intel's x86 design which was register-starved,
IA32 isn't /really/ that register-starved, it only looks that way in the
virtual machine language. The number of actual registers depends on the
specific chip.
Back onto the OP's question. I don't have /any/ real data myself, but it seems
to me that a 64-bit JVM will requre larger memory caches to achieve the same
level of performance as a 32-bit one, since it will have to move more data
around on each object access. My /guess/ is that that will have little effect
on the time it takes to deferrence an address which is in-cache, nor in the
time it takes to refresh one cache line, but it will effectively reduce the
size of each cache. So, unless the 64-bit CPUs also come with oversize caches
then I'd expect a moderate performance hit on "normal" OO code (tight
arithmetic loops would presumably not be affected). And of course, a 32-bit
machine with that much cache would run faster anyway, so there's a sense in
which a 64-bit machine "wastes" cache-space, and so time.
Putting the same idea a different way, I'd expect an equally performing 64-bit
machine to cost more than a 32-bit machine, not only becuase of the Fundamental
Law of Computing ("bigger numbers cost more"), but in order to pay for
anciliary support hardware like more RAM and bigger caches.
The number of actual registers depends on the
specific chip.
Hendrik said:-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
NotDashEscaped: You need GnuPG to verify this message
Chris Uppal uitte de volgende tekst op 05/11/2006 11:36 AM:
I won?t say anything about prices (the university paid, my colleague did
the paperwork), but from testing on some of the benchmark programs that
have appeared in this NG, a 64-bit processor emulating 32-bit (that is,
working with a 32-bit Java) is way slower than using 64-bit (i.e. 64-bit
Java).
H.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.