|
Re: CacheAdapter performance issue [message #1015119 is a reply to message #1015022] |
Wed, 27 February 2013 14:09 |
|
Hi, Joel,
I replied in the EMF newsgroup. It seems that my newsreader didn't
cross-post the reply to your cross-post.
cW
On 2013-02-27 08:30:02 +0000, Joel Greenyer said:
> Hi,
> we are building a tool for executing UML models by interpretation.
> When looking to increase the performance, I found during profiling that
> there are many time-consuming calls of InverseCrossReferencer.add().
> They come from the CacheAdapter, which is notified of virtually any
> operation on our runtime objects.
> These operations do not change the UML model itself, so I think that
> whatever the CacheAdapter is doing (unfortunately, I'm not an expert
> here), it's not necessary.
>
> Is there any way to prevent the CacheAdapter from listening to changes?
>
> Thanks
>
> Joel
|
|
|
Re: CacheAdapter performance issue [message #1015132 is a reply to message #1015022] |
Wed, 27 February 2013 14:33 |
Ed Willink Messages: 7655 Registered: July 2009 |
Senior Member |
|
|
Hi
UML is a very powerful modeling notation and since the UML specification
specifies many relationship using subsetting and derived unions, the
MDT/UML2 implementation faithfully supports these using CacheAdapter to
try to improve behaviour significantly for the typically sparse usage of
real models.
Conversely EMOF/Ecore is optimized for run-time representation with no
duplication or representation of analysis subtleties.
If you are looking at efficient execution on top of UML, you might want
to look at the new OCL Pivot-model that is a hybrid of the above design
points. The Pivot model is UML-aligned but has no duplicate
relationships and makes all unnavigable oppisities as navigable, and
reifies stereotypes.
Regards
Ed Willink
On 27/02/2013 08:30, Joel Greenyer wrote:
> Hi,
> we are building a tool for executing UML models by interpretation.
> When looking to increase the performance, I found during profiling
> that there are many time-consuming calls of InverseCrossReferencer.add().
> They come from the CacheAdapter, which is notified of virtually any
> operation on our runtime objects.
> These operations do not change the UML model itself, so I think that
> whatever the CacheAdapter is doing (unfortunately, I'm not an expert
> here), it's not necessary.
>
> Is there any way to prevent the CacheAdapter from listening to changes?
>
> Thanks
>
> Joel
|
|
|
Powered by
FUDForum. Page generated in 0.03253 seconds