Bug #3378

Memory consumption optimization and leak fixing /A

Added by Antti Villberg almost 6 years ago. Updated about 5 years ago.

Status:ClosedStart date:
Priority:4Due date:
Assignee:Antti Villberg% Done:

0%

Category:DiagramSpent time:-
Target version:2012-7
Release notes:
Story pointsS
Velocity based estimate-
ReleaseSimantics 1.6Release relationshipAuto

Associated revisions

Revision 24671
Added by Antti Villberg almost 6 years ago

Spend less memory on SyncListenerLists lists by default. They constitute a major part of the memory footprint of Element instances.

refs #3378

Revision 24672
Added by Antti Villberg almost 6 years ago

Prevent resource leakage through closures in GraphExplorerFactory.

refs #3378

Revision 24673
Added by Antti Villberg almost 6 years ago

Cluster cache computation/memory resource conservation efforts.

refs #3378

Revision 24674
Added by Antti Villberg almost 6 years ago

Fixed lots of diagram resource (Element/Diagram instances mainly) leaks in g2d and diagram code.
Also fixed diagram profile observation leaks causing data and listeners to get trapped for every diagram ever opened.

refs #3378

Revision 24675
Added by Antti Villberg almost 6 years ago

Use weak caching for all SVG documents loaded into SVGNode through setData(String).
This may not be necessary when DB caching works properly, but helps to keep down the amount of
duplicate Strings with the exact same content.

refs #3378

Revision 24677
Added by Antti Villberg almost 6 years ago

Fixed NPE
refs #3378

Revision 24711
Added by Tuukka Lehtonen almost 6 years ago

RouteGraph connection memory consumption optimizations:
  • Decreased default sizes of RouteGraph and RouteLine collections.
  • org.simantics.diagram.adapter.RouteGraphConnectionClassFactory:
    • made default sizes of some structures smaller *

refs #3378

Revision 24712
Added by Tuukka Lehtonen almost 6 years ago

Removed print from RouteGraphConnectionClassFactory.

refs #3378

Revision 24713
Added by Tuukka Lehtonen almost 6 years ago

Better extendability for RouteGraphconnectionClassFactory.

refs #3378

History

#1 Updated by Tuukka Lehtonen almost 6 years ago

  • Status changed from New to In Progress
More information on to r24711:
  • Added caching of the following data to the generic RouteGraphConnectionClassFactory (not the sysdyn/etc. customized versions yet):
    • StyledRouteGraphRenderer - only one created per (ConnectionStyle, scene graph)
    • ConnectionStyle - only one created per (connection type, scene graph)
    • ILineEndStyle - only one created per used DIA.HasConnector attachment relation

The first two optimizations can be used in KCLEco and Sysdyn too, but the last one cannot be easily reused because of the contents their custom ILineEndStyle implementations. They contain the terminal element bounds which makes pretty much every ILineEndStyle different. Also, those implementations don't even have equals/hashCode implementations.

#2 Updated by Tuukka Lehtonen over 5 years ago

  • Status changed from In Progress to Closed

#3 Updated by Tuukka Lehtonen over 5 years ago

  • Category set to Diagram

#4 Updated by Tuukka Lehtonen about 5 years ago

  • Assignee set to Antti Villberg

Also available in: Atom PDF