Joel Oliveira
|
|
Software Product Assurance Manager
|
|
Do you rely on your software?
|
DISCLAIMER: This message is confidential and may contain privileged
information. It is for use only by the persons or entities to whom it is
addressed. If you are not an intended recipient, you should not disclose, distribute,
copy, print, rely on or otherwise make use of this message. If an addressing or
transmission error has misdirected it to you we would be grateful if you would
please notify the sender by return, before deleting it from your system.
From: rap-dev-bounces@xxxxxxxxxxx
[mailto:rap-dev-bounces@xxxxxxxxxxx] On Behalf Of Frank Appel
Sent: Wednesday, July 09, 2008 12:34 PM
To: RAP project development-related communication
Subject: AW: [rap-dev] RAP memory consumption
Hi,
is there any literature available regarding the duplicate
Strings problem? I ask this because to my knowledge Strings are unique within
a VM and there's nothing I found by a quick search in the web that differs from
this statement (Maybe I used the wrong query words…):
"The JVM recognises that the two
string literals are identical and only creates a single instance. This is
sensible on the part of the JVM for performance and memory reasons"
So it would be great, if someone has a link
that describes how this problem can happen.
Ciao
Frank
Von:
rap-dev-bounces@xxxxxxxxxxx [mailto:rap-dev-bounces@xxxxxxxxxxx] Im Auftrag
von Jochen Krause
Gesendet: Mittwoch, 9. Juli 2008 10:34
An: rap-dev@xxxxxxxxxxx
Betreff: [rap-dev] RAP memory consumption
Hi,
Yesterday I had a memory analyzing session
with an expert from the Eclipse Memory Analyzer team. We had a look at a heap
dump of the RAP Demo Application with a couple of hundred simulated users.
Here are the most important results:
Memory consumption of the RAP framework is
very reasonable! This is a great result. Still, there is always some room for
improvement:
There are many duplicated Strings. A big chunk
of those are from widget ids. Moving the implementation to use String.intern()
will probably be a quick and efficient way to improve memory consumption (only
the S.. JVM 1.4 is inefficient with String.intern() ). Another alternative
might be using our own data structure, if we restrict ourself to UTF-8 we need
only 1 Byte per character instead of 2 Byte for String.
Another area for potential improvement is our
use of Hashmaps, We have 172.000 completely empty hashmaps (530.000 in
total).
It seems that WidgetAdapter is contributing
significantly to the large amount of empty hashmaps.
From my point of view this is not high
priority at the moment, but could be researched in one of the upcoming
releases.
P.S: See also the interesting posting here: