Bug 175148 - Reduce Memory utilization by DublinCore and Identifiable instances
Summary: Reduce Memory utilization by DublinCore and Identifiable instances
Status: ASSIGNED
Alias: None
Product: STEM
Classification: Technology
Component: Internal (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P5 minor (vote)
Target Milestone: ---   Edit
Assignee: Stefan Edlund CLA
QA Contact: Daniel Ford CLA
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2007-02-22 12:26 EST by John Thomas CLA
Modified: 2010-08-27 09:42 EDT (History)
1 user (show)

See Also:


Attachments
Email containing a TPTP screen shot and comments from Dan. (433.68 KB, message/rfc822)
2007-02-22 12:29 EST, John Thomas CLA
no flags Details
mylar/context/zip (3.02 KB, application/octet-stream)
2007-03-01 11:41 EST, Daniel Ford CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description John Thomas CLA 2007-02-22 12:26:38 EST
Early TPTP results show that the biggest memory hogs are the many instances of DublinCore and URIToIdentifiable  
Reduction in instance size and/or number of instances would help keep the footprint of STEM down to a reasonable size.
Comment 1 John Thomas CLA 2007-02-22 12:29:20 EST
Created attachment 59585 [details]
Email containing a TPTP screen shot and comments from Dan.
Comment 2 Daniel Ford CLA 2007-03-01 11:41:00 EST
This isn't an easy one to just "fix".  The URIToIdentifiable is a class generated by EMF as part of the EMap it generates that allows Identifiables to be found by their URI and their TypeURI.  Maybe with more use of the model we will decide we don't need the mapping(s), but right now removing them would be a big deal.  

I had a preliminary look at removing the TypeURI mapping and found places in the disease model plugin where it is used to find population labels when a graph is decorated.  Removing it would break that (which is being used properly).

Let's look at this one later after we look at some other ways of reducing the memory foot print.
Comment 3 Daniel Ford CLA 2007-03-01 11:41:02 EST
Created attachment 60084 [details]
mylar/context/zip
Comment 4 Eclipse Webmaster CLA 2009-08-30 02:49:44 EDT
LATER/REMIND bugs are being automatically reopened as P5 because the LATER and REMIND resolutions are deprecated.
Comment 5 James Kaufman CLA 2010-08-16 13:14:38 EDT
Assigned to Stefan
Comment 6 Stefan Edlund CLA 2010-08-23 17:31:49 EDT
Every Edge and every Label in STEM has a dublin core object attached to them. It doesn't really seem necessary. Nodes uses dublin core attributes to store things like spatial maps, so we can't get rid of those.

This is an old defect, let's discuss it on the developer call.
Comment 7 Stefan Edlund CLA 2010-08-25 14:58:01 EDT
Per discussion on the call, we will look at Labels first to see what impact removing the Dublin Core object has.
Comment 8 Matthias Filter CLA 2010-08-27 09:42:17 EDT
I would suggest - if possible and in the long run - to restrict the usage of the dublin core to the task to store "bibliographic" information necessary for documentation, e.g. who generated it, what data source was used, additional information.
If one needs to attach specific information to an object (e.g. spatial information) I would prefer to have specific variables. So that if one needs these values at some place in the program for a certain type of calculation (e.g. polygone information for the visualisation, time information for plausibility checks etc.) the user has to make sure that the information is supplied.

So to come up with a suggestion for the memory issue - wouldn't it make sense to implement the same hierarchical concept that is currently used for models and graphs for variables that should be assigned to objects like nodes and edges as well? E.g. then one could attach a dublin core object (with bibliographic information) to a graph (as the hierarchy level that integrates nodes and edges) and the user decides whether there is the need to attach specific doublin cores to the hierarchies below, e.g. in case of nodes a dublin core where the data source is specified. If I want to associate specific values (area, spatial, population size etc.) to each node, then one would assign them as single variables to each node or also on the higher level if for all nodes the values should be the same. I really don't know if this idea helps! Maybe we can discuss it on the next weekly call again.