Community
Participate
Working Groups
Build: I20050215-2300 Test case: 1) Open eclipse with a new workspace. 2) Close the welcome perspective and intro view 3) Shutdown 4) Restart 5) Run the garbage collector several times 6) Dump all instances of java.lang.String to a file. When I do this, I find many strings that appear to come from the plugin manifests. I will attach a file with more details.
Created attachment 18024 [details] Dump file showing duplicated strings The format of this file is as follows. Each string literal is shown, and then on the following line it has: Count: The number of equal but not identical instances of that string Size: The memory space used by all instances, in bytes Savings: The number of bytes of memory that would be saved by eliminating all the duplicates. There's potential here for about 200 KB of memory to be saved. Presumably this savings becomes much bigger as the number of bundles grows.
Are you doing anything that would cause all the manifest files to be read? I'm surprised by this because we should not be reading the manifest files on restart as long as we have a cached state to load from.
It was the exact test case described above. It is the second invocation of the platform. I literally didn't even touch the UI when it came up. I just immediatley produced a string dump in the profiler. I will attach some reference graphs from the profiler.
Created attachment 18026 [details] Reference graph to "Bundle-symbolicname"
Created attachment 18027 [details] Another reference graph
Created attachment 18028 [details] Another reference graph (last one, I promise)
I released a new implementation of Headers which is a much less expensive object. I removed two HashTables and replaced them with two Object arrays. I also instern the keys to prevent duplicate string keys.
The new Headers implementation should help. Marking bug as FIXED. Please re- open if you still find duplicate headers strings.
but did you find out why the headers are loaded at all? on second run there should not be any headers? I belive John mentioned something about Help or About but that should not be at play here.
I have entered bug 86476 to investigate why Headers are being created after the first session.
Thomas can you give me some stats that I can post on our performance page please (i.e. percent space or time improvements)?