On Wed, Nov 30, 2011 at 22:38, André Warnier <a...@ice-sa.com> wrote: [...] > > I am not knowledgeable at all in such questions, and while you are at it let > me ask a question : > Does the fact of having a system with a 64-bit CPU (and OS) necessarily (or > usually) imply that data transfers between CPU and RAM happen also 64-bit in > parallel ? >
No, this depends on the bus width, not the address space. And bus widths nowadays are rather in the range of 256/512 bits. > For example, let' suppose that I have an application which handles a very > large table of integers (the integers themselves being < 2exp31), and that > periodically all elements of this table have to be updated. > My understanding is that under a 32-bit platform, each integer will occupy > 32 bit, while on a 64-bit platform each will occupy 64 bit (the source > program remaining the same). > > If there is not a corresponding 64-bit parallel transfer between CPU and > memory, then using a 64-bit CPU would be detrimental, no ? > Or is this a non-sensical case nowadays ? > This depends on the alignment the JVM uses. If it aligns to 8 bytes, then yes, any integer will take up 8 bytes, but so will any byte. In general, the alignment is 4 bytes, except for long values of course. With a 4 byte alignment, this means you can store two ints in a register, and it's then only a matter of logical ands/shifting to obtain the value you want. And these operations are ultra fast ;) -- Francis Galiegue ONE2TEAM Ingénieur système Mob : +33 (0) 683 877 875 Tel : +33 (0) 178 945 552 f...@one2team.com 40 avenue Raymond Poincaré 75116 Paris --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org