From: Lew on
Roedy Green wrote:
> In my own code, Strings and arrays of pointers to Strings would be the
> most common ram hog.

Your code would probably benefit greatly from the '-XX:+UseCompressedOops'
option in a 64-bit environment, then.

--
Lew
From: Nigel Wade on
On Mon, 23 Nov 2009 10:14:32 -0800, Roedy Green wrote:

> On 23 Nov 2009 13:54:01 GMT, Thomas Pornin <pornin(a)bolet.org> wrote,
> quoted or indirectly quoted someone who said :
>
>>most of the memory used in a
>>typical application is for non-pointer data, e.g. byte[] or char[],
>
> In my own code, Strings and arrays of pointers to Strings would be the
> most common ram hog.
>
> I wonder if someone could cook up a simple tool to predict the effect of
> going to 64 bit on any given app.

Given that going 64bit lifts you out of the 3GB straight-jacket, I
predict the effect of going 64bit would be to free you from worries about
the amount of RAM your application requires and concentrate on other,
more important issues.

--
Nigel Wade
From: Arved Sandstrom on
Nigel Wade wrote:
> On Mon, 23 Nov 2009 10:14:32 -0800, Roedy Green wrote:
>
>> On 23 Nov 2009 13:54:01 GMT, Thomas Pornin <pornin(a)bolet.org> wrote,
>> quoted or indirectly quoted someone who said :
>>
>>> most of the memory used in a
>>> typical application is for non-pointer data, e.g. byte[] or char[],
>> In my own code, Strings and arrays of pointers to Strings would be the
>> most common ram hog.
>>
>> I wonder if someone could cook up a simple tool to predict the effect of
>> going to 64 bit on any given app.
>
> Given that going 64bit lifts you out of the 3GB straight-jacket, I
> predict the effect of going 64bit would be to free you from worries about
> the amount of RAM your application requires and concentrate on other,
> more important issues.
>
Leaving aside the specific numbers, how many times over the past thirty
years (rough timeframe for the Age of PCs [1]) have we said the same
thing? :-)

AHS

[1] defining that "Age" by at least reasonably large use.
From: Thomas Pornin on
According to David Lamb <dalamb(a)cs.queensu.ca>:
> Do you have any studies that show this (ie. that most memory use is
> large arrays of this sort)?

Only my own experience -- which includes fitting a Java-based server
into my own JVM for an embedded system, where I wrote the GC and saw
first-hand what RAM was used for. Although there were fairly complex
data structures in there (including complete validation of X.509
certificates), most of the memory used turned out to be I/O buffers (a
compliant SSL server requires a 18437-byte input buffer per connection,
and that's quite a lot actually).

On anything vaguely graphical, I would expect bitmap pictures to eat up
quite a lot of RAM as well.


--Thomas Pornin
From: DuncanIdaho on
Thomas Pornin wrote:
> According to DuncanIdaho <Duncan.Idaho2008(a)googlemail.com>:
>> The question is, will all my Java stuff (Tomcat 6, Eclipse/My Eclipse
>> 5.1/ Java 1.6)that I currently have installed on my remaining XP SP2
>> machine still work or do I need to get everything in new, spanky 64 bit
>> versions.
>
....

> And anyway, you will have
> to go 64-bit at some time, so better do it now.

Well most of my time is spent developing business systems that usually
run as webapps on Tomcat. Consequently I need to be aware of which
versions of the servlet engine I am working with (or rather which
versions the clients are using) and I certainly can't 'go 64 bit' on a
whim.

I can see that the address size might be a slight issue memory wise but
there is more to 64 bit that bigger addresses isn't there. Do 64 bit
registers mean a 64 bit memory bus ... do we really need to fetch 64
bits for a short (oops, sorry Short) ... so many years since university
so much forgotten. Anyway, many thanks for the very complete
answers to my question


-- Idaho