Bug 261390 - OutOfMemoryError with GMF M4
Summary: OutOfMemoryError with GMF M4
Status: RESOLVED FIXED
Alias: None
Product: QVTo
Classification: Modeling
Component: Engine (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 2.0 M5   Edit
Assignee: Radomil Dvorak CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2009-01-16 15:41 EST by Anthony Hunter CLA
Modified: 2009-02-10 07:50 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anthony Hunter CLA 2009-01-16 15:41:30 EST
Install GMF 3.5 M4 and all the dependencies except QVTO

Import the GMF source code into the workspace. All is fine, with the exception of the errors related to the missing QVTO.

Now install QVTO and restart Eclipse. There is a signifiant performance penalty, leading to OutOfMemoryError. I am using the default Eclipse settings, as I always do.

Stack Trace: java.lang.OutOfMemoryError: Java heap space
        at java.util.LinkedList.<init>(LinkedList.java:78)
        at org.eclipse.gmf.internal.xpand.parser.XpandParser.ruleAction(XpandParser.java:3266)
        at lpg.lpgjavaruntime.DeterministicParser.processReductions(DeterministicParser.java:55)
        at lpg.lpgjavaruntime.DeterministicParser.parse(DeterministicParser.java:107)
        at org.eclipse.gmf.internal.xpand.parser.XpandParser.parser(XpandParser.java:185)
        at org.eclipse.gmf.internal.xpand.parser.XpandParser.parser(XpandParser.java:160)
        at org.eclipse.gmf.internal.xpand.util.XpandResourceParser.parse(XpandResourceParser.java:39)
        at org.eclipse.gmf.internal.xpand.util.ResourceManagerImpl.loadXpandResources(ResourceManagerImpl.java:360)
        at org.eclipse.gmf.internal.xpand.build.WorkspaceResourceManager.loadXpandResource(WorkspaceResourceManager.java:55)
        at org.eclipse.gmf.internal.xpand.build.XpandBuilder.reloadResource(XpandBuilder.java:132)
        at org.eclipse.gmf.internal.xpand.build.XpandBuilder$XpandResourceVisitor.visit(XpandBuilder.java:230)
        at org.eclipse.core.internal.resources.Resource$2.visit(Resource.java:108)
        at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:60)
        at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:81)
        at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
        at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
        at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
        at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
        at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85)
        at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:126)
        at org.eclipse.core.internal.resources.Resource.accept(Resource.java:70)
        at org.eclipse.core.internal.resources.Resource.accept(Resource.java:106)
        at org.eclipse.core.internal.resources.Resource.accept(Resource.java:90)
        at org.eclipse.gmf.internal.xpand.build.XpandBuilder.fullBuild(XpandBuilder.java:166)
        at org.eclipse.gmf.internal.xpand.build.XpandBuilder.doBuild(XpandBuilder.java:95)
        at org.eclipse.gmf.internal.xpand.build.XpandBuilder.build(XpandBuilder.java:69)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:633)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
Comment 1 Radomil Dvorak CLA 2009-02-10 07:50:36 EST
The OutOfMemoryError issue has been solved in M5 and both the QVT builder and Xpand builder are able to run using the default memory settings.

We will continue to work on further memory usage optimization.
Concerning the performance issue, QVT builder needs 4.5sec to build the 'org.eclipse.gmf.codegen' project, which we will try to improve in the future as well.

The XpandBuilder execution takes more time and it's rather caused by the way
it's currently integrated with QVT/OCL. It can be optimized too.

Closing this bug, further improvements are to be introduced by 
bug #264335