Community
Participate
Working Groups
A memory profile reveiled that SimpleArtifactDescriptor is holding in most cases an empty OrderedProperties instance. With lazy initialization some thousand objects can be avoided. Further, most 'repositoryProperties' are a map with a single entry. For these, an OrderedProperties is oversized and Collections.singletonMap would do the job also. Further inspection of OrderedProperties instances showed that the map keys are a rather discrete set of values. Therefore it makes sense to intern them.
Created attachment 269162 [details] Screenshot 16566 empty instances held by SimpleArtifactDescriptor
Created attachment 269164 [details] Screenshot: Profiler SimpleArtifactDescriptor using >6MB
Created attachment 269165 [details] Screenshot: Profiler Previous screenshot showed the already optimized case. Consumption before: 6.265.168 after : 4.660.408 ----------------- -1.604.760
New Gerrit change created: https://git.eclipse.org/r/100537
Gerrit change https://git.eclipse.org/r/100537 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/?id=5a00dcccfbbe404bca8c620b2fbe45304f611d6f