Skip to main content



      Home
Home » Modeling » QVT-OML » Compiling performance(Poor compiling performance)
Compiling performance [message #1847695] Wed, 03 November 2021 18:58 Go to next message
Eclipse UserFriend
Hi all,

my name is Fabio.
I'm using QVT for model transformation, as long as the project was small, I didn't notice any bad things.

Thing changed more and more the rules became complex, currently I think to have more than 300 rules (query and mapping). And compiling time is very slow.

Is there any hint you can give me to help qvto compiler performance?
should I prefer using having some generic rules (like query OclAny::DoSomething and having many inheriting rules "DoSomething") or should I prefer specific rules (like ClassA::ClassADoSomething, ClassB::ClassBDoSomething)?

Currently I'm overly using inheritance, but I could reduce it a little if it could help compiler performance.

Thank in advance for any help you would like to give me.
Fabio.
Re: Compiling performance [message #1847699 is a reply to message #1847695] Thu, 04 November 2021 02:03 Go to previous messageGo to next message
Eclipse UserFriend
Hi Fabio

There are certainly many opportunities for the QVTo compiler performance to be improved, but sadly we lack the resources to pursue them.

300 rules is not huge, so I wouldn't expect particularly troublesome performance.

I certainly wouldn't recommend restructuring as OclAny::A/B/C/D/... since one poor area is that EMF finds by linear list search rather than map lookup; so avoid wide flat hierarchies.

But if you're seeing a problem, there is probably just one particular characteristic of your code that is bad and probably easily fixed. You need to profile / experiment with suspect idioms.

Deep inheritance hierarchies are certainly an issue because name searches traverse the hierarchy and QVTo (or rather the Classic Eclipse OCL that QVTo still uses) lacks the name caches that the Pivot-based Eclipse OCL provides.

Regards

Ed Willink

Re: Compiling performance [message #1847703 is a reply to message #1847699] Thu, 04 November 2021 04:11 Go to previous messageGo to next message
Eclipse UserFriend
Hi Fabio

It's really hard to tell without looking at your specific transformation. Can you provide access?

Otherwise, just some guesses. Are you using multiple modules, i.e., libraries or just a single transformation file? Are you using blackbox operations?


Kind regards
Christopher
Re: Compiling performance [message #1847748 is a reply to message #1847703] Fri, 05 November 2021 03:50 Go to previous messageGo to next message
Eclipse UserFriend
Hi

For input-only queries, you could consider using OCLinEcore to embed the queries within an input metamodel and so move their compilation cost to genmodel-time. Your execution can also benefit through their compilation to direct Java code.

Regards

Ed Willink
Re: Compiling performance [message #1847952 is a reply to message #1847699] Mon, 15 November 2021 03:54 Go to previous message
Eclipse UserFriend
Thank Ed,

the insight information you have given has been very useful.
Previous Topic:Create new element in target model
Next Topic:Element is not transformed inside its container
Goto Forum:
  


Current Time: Sat Aug 30 20:53:44 EDT 2025

Powered by FUDForum. Page generated in 0.05497 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top