Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance optimization for JavaGrammarInformationProvider #12

Closed
wants to merge 15 commits into from
Closed

Performance optimization for JavaGrammarInformationProvider #12

wants to merge 15 commits into from

Conversation

BenjaminKlatt
Copy link
Contributor

This pull request fixes #11 by switching the JavaGrammarInformationProvider to a not-generated class and using caches for syntax element handling

bklatt added 2 commits December 31, 2013 07:32
- modified cs file to prevent overriding the grammar provider
- adapted grammar provider
Commit implements solution described in the issue
@BenjaminKlatt
Copy link
Contributor Author

The pull request has been extended with code changes to Fix #13

bklatt added 6 commits January 2, 2014 17:48
LayoutUtil in a static way.
This fix only reduces the number of JavaLayoutUtil instances in the
JavaResource sub class. The generated JavaResource still instantiates
one JavaLayoutUtil per resource.
With the first commit for this issue, the JavaParser adaptation were
missed.
@BenjaminKlatt
Copy link
Contributor Author

Up to now, the enhancements included in this pull request led to an improvement in memory consumption.
A performance improvement, in terms of time reduction is still pending.

The screenshots below represent the results of a test to load all jar and java files from a use case feature only variant of the ArgoUML-SPL open source project: http://sdqweb.ipd.kit.edu/wiki/SPLevo/Case_Studies/ArgoUML-SPL

Original JaMoPP Code
jamopp_argouml-usecase-variant_origin

Modification up-to-now
jamopp_argouml-usecase-variant_20140104

As you can see, the memory consumption is reduced at the end of the process.

Note: This performance analysis has not been performed in a lab, but on a laptop workstation.

bklatt added 4 commits January 5, 2014 01:16
* Improved package name calculation
* minor code cleanup
* improved usage of meaningful JavaUniquePathConstructor constants
@BenjaminKlatt
Copy link
Contributor Author

Further performance improvements.
Reproduced test described above and achieved about 3 minutes (10%) improvement with further memory reduction

jamopp_argouml-usecase-variant_20140105

@BenjaminKlatt
Copy link
Contributor Author

I have tested LinkedHashMap-based caches for the JavaUniquePathConstructor methods, but without any significant differences. So I do not push these changes into the branch.

bklatt added 2 commits January 5, 2014 09:30
performance-optimization

Conflicts:
	Core/org.emftext.language.java/src/org/emftext/language/java/JavaClasspath.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

JavaGrammarInformationProvider performance issue
1 participant