[ATL] Transformation execution time [message #780198] |
Tue, 17 January 2012 11:03  |
Eclipse User |
|
|
|
Hi,
I'm developing an application for CIM (Common Information Model) models.
Since CIM models are saved as MOF (Managed Object Format -> This is different to Meta-Object Facility!) files, I have to parse these files. Unfortunately the MOF language structure does not allow to parse it directly to CIM models, so I create a intermediate model for the MOF file structure and I want to transform it to the final CIM model.
When I launch this transformation it seems to run endlessly. I have aborted the execution after 20 minutes...
The model I have to translate contains 1764 classes (of type mof!ClassDeclaration) and many more contained attributes and so on. So it is very huge model...
I have attached the metamodels and my ATL transformation file.
- Can you help me with this?
- Can you check whether my transformation file is optimal? Maybe there is some inefficient code.
- Do you have some experience about transformation of large models and about the time it may take? Is ATL an efficient way to do this?
Thank your very much for your help!
Best regards,
Stefan
Attachment: cim.ecore
(Size: 12.17KB, Downloaded 373 times)
Attachment: mof.ecore
(Size: 11.01KB, Downloaded 401 times)
Attachment: mof2cim.atl
(Size: 9.65KB, Downloaded 414 times)
|
|
|
Re: [ATL] Transformation execution time [message #780276 is a reply to message #780198] |
Tue, 17 January 2012 14:19  |
Eclipse User |
|
|
|
Hi,
I've tried further and my transformation is now working properly and in reasonable time.
What has gone wrong:
In rule Qualifier2Qualifier I have to generate a reference to a corresponding QualifierType. My previous solution was to iterate over all QualifierTypes to find the right one:
...
QualifierTypeRef <- cim!QualifierType->allInstances()->select(qt | qt.Name.toLower() = mofQualifier.name.toLower())->first(),
...
This has taken up to 1 second per qualifier. Unfortunately there are more than 32,000 qualifiers in my model. So this is the reason why transformation has run endlessly.
My current workaround is to not generate this reference - do you have an idea how I can optimize above iteration to run much faster?
Thank you very much for your help in advance!
Best regards,
Stefan
|
|
|
Powered by
FUDForum. Page generated in 0.02769 seconds