Bug 63354 - [osgi] Flush the state from the memory
Summary: [osgi] Flush the state from the memory
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Runtime (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.1 M6   Edit
Assignee: platform-runtime-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2004-05-20 21:53 EDT by Pascal Rapicault CLA
Modified: 2005-04-18 15:29 EDT (History)
1 user (show)

See Also:


Attachments
Patch implementing string sharing on the state (4.96 KB, patch)
2004-10-18 11:13 EDT, Pascal Rapicault CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Pascal Rapicault CLA 2004-05-20 21:53:14 EDT
On a system that does not take advantage of the dynamicity, the state stays
loaded in memory for the whole session. For example, on wsad it can take more
than 2M.

It could be interesting to be able to flush this and be able to reload it
dynamically using a technique similar to the registryCache.
Comment 1 Pascal Rapicault CLA 2004-10-18 10:56:13 EDT
Some measurements have been done on RAD.
On startup the state represents: 66,61% of 71536 Strings loaded in memory (these
numbers are obtained after several GCs).
Another measurements done done on startup when the workspace chooser opens shows
that it represents: 69,98% or 32120 Strings.
Comment 2 Pascal Rapicault CLA 2004-10-18 11:04:26 EDT
Please ignore any values in comment #1.

Some measurements have been done on RAD.
On startup the state represents: 66,61% of 71536 Strings loaded in memory (these
numbers are obtained after several GCs).
Another measurements done on startup when the workspace chooser opens shows
that it represents: 80.34% or 39896 Strings.
Comment 3 Pascal Rapicault CLA 2004-10-18 11:13:07 EDT
Created attachment 15248 [details]
Patch implementing string sharing on the state

I ran the same tests with this patch provided by Tom, and here is what I can
see.

Startup of an empty workspace: strings from the state represent 57% of the
strings left (improvement of 9%).

Startup when the workspace chooser opens: strings from the state reprensent 69%
of the strings (improvement of 11%).
Comment 4 Pascal Rapicault CLA 2004-10-18 11:14:09 EDT
This may worth making available on 3.0.x stream.
Still a solution to unload the state is critical.
Comment 5 Pascal Rapicault CLA 2005-01-13 17:00:20 EST
The new equinox code base provide some level of unloading, however the
"lazydata" object could make use of SoftReference.
Comment 6 Pascal Rapicault CLA 2005-03-15 15:28:11 EST
Tom, what's the status on that?
Comment 7 Thomas Watson CLA 2005-03-15 16:25:30 EST
I do not plan on doing SoftReferences for 3.1.  The lazyData is forcefully 
flushed from the state after a period of inactivity.  This model reduces the 
complexity of the State code.
Comment 8 John Arthorne CLA 2005-04-11 17:40:54 EDT
If the data is being flushed after a period of inactivity, it sounds like we can
marked this bug as fixed?  We'd like to clean up as many outstanding perf bugs
as possible before M7.
Comment 9 Thomas Watson CLA 2005-04-18 15:29:06 EDT
Closing as fixed.  M6 will flush the state from memory after a period of 
inactivity.