eclipse-viatra / org.eclipse.viatra

Main components of the VIATRA framework
https://eclipse.dev/viatra
Eclipse Public License 2.0
0 stars 1 forks source link

DelayUpdatePropagation() can result in slowdown #130

Open eclipse-viatra-bot opened 3 months ago

eclipse-viatra-bot commented 3 months ago

| --- | --- | | Bugzilla Link | 568963 | | Status | UNCONFIRMED | | Importance | P3 normal | | Reported | Nov 19, 2020 13:49 EDT | | Modified | Nov 20, 2020 04:26 EDT | | Version | 2.3.2 | | Reporter | Hans van der Laan |

Description

Hey,

A while back, I asked quite a few questions regarding performance and VIATRA [1]. I made the observation that there existed two specific elements of which the removal took quite a lot of time.

I figured out the performance bottleneck!

Apparently, delayUpdatePropagation() can cause quite some overhead in some cases. Although I yet have to rerun my performance benchmarks again, on my work computer the removal of a central model entity went down from ~85s to ~12s.

Perhaps this is to be expected due to some underwater computations being done. However, in this case I think it would be good to mention this in the documentation.

[1] https://www.eclipse.org/forums/index.php/t/1105611/

eclipse-viatra-bot commented 3 months ago

By Zoltan Ujhelyi on Nov 20, 2020 04:26

Hi Hans,

thanks for the feedback. The fact that delaying the update propagation results in performance regressions sometimes is not totally unexpected, as depending on the model structure the order which the elements are removed can alter the results a lot. Furthermore, if a lot of changes are propagated at once, there might be issues with some potentially not optimally chosen data structure implementations that do not come forth when working with smaller models.

This part might need some more aggressive benchmarking on our side, but I am not sure whether we will have the time to do so. My suggestion, for now, would be not to delay update propagation unless there is a strong reason (e.g. a noticed slowdown) to do so.