tag:blogger.com,1999:blog-6819827262735986893.post4473213734376267776..comments2020-01-08T12:36:05.706+01:00Comments on Graphs & Numbers: Path Constraints in HenshinChristian Krausehttp://www.blogger.com/profile/07104821447166882185noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-6819827262735986893.post-39478565331583958982014-01-03T17:00:15.528+01:002014-01-03T17:00:15.528+01:00Hi Christian. Today I found the time to do that t...Hi Christian. Today I found the time to do that transformation also with FunnyQT and to compare the two solutions in a blog post.<br /><br />http://tsdh.wordpress.com/2014/01/03/finding-movie-couples-henshin-vs-funnyqt/<br />Tassilo Hornhttps://www.blogger.com/profile/06157826100110644626noreply@blogger.comtag:blogger.com,1999:blog-6819827262735986893.post-25521619058896312542013-12-24T13:44:26.576+01:002013-12-24T13:44:26.576+01:00Great tip, thanks a lot! We should definitely fix ...Great tip, thanks a lot! We should definitely fix this problem in getRoots().<br /><br />Happy holidays! Christian Krausehttps://www.blogger.com/profile/01663803042276257449noreply@blogger.comtag:blogger.com,1999:blog-6819827262735986893.post-71786541660968416262013-12-23T14:29:50.193+01:002013-12-23T14:29:50.193+01:00I've just had a look at EGraphImpl.getRoots(),...I've just had a look at EGraphImpl.getRoots(), and the problem is that it does a contains-check on an ArrayList for any root, so it's O(n^2) in the worst case. And in the movie models every node is a root, so here we have the worst possible scenario.<br /><br />Ok, anyway, now I've seen that EGraphImpl extends LinkedHashSet, so I can work around that problem.Tassilo Hornhttps://www.blogger.com/profile/06157826100110644626noreply@blogger.comtag:blogger.com,1999:blog-6819827262735986893.post-1651900598030410912013-12-23T14:12:19.250+01:002013-12-23T14:12:19.250+01:00I wanted to reproduce the samples, so I got a Hens...I wanted to reproduce the samples, so I got a Henshin nightly build and the examples plugin. When I run the example, I get similar results. Good job. :-)<br /><br />Now I want to solve that example with another tool. Therefore, I need to serialize the models. But it takes ages using standard XMIResourceImpls. Ok, no problem, I've written my own simple XMI export which is several times faster, but still it sucks badly. The problem is that iterating over EGraph.getRoots() takes about sixteen seconds even for the smallest model with only 170.000 nodes.<br /><br />So how can it be that this exact model can be transformed in about 2 seconds when just iterating all nodes once already takes 16 seconds?!? Obviously, I must be doing something wrong...<br /><br />[As another data point: for the model with 1.190.000 nodes, iterating all the elements took 1172 seconds!]Tassilo Hornhttps://www.blogger.com/profile/06157826100110644626noreply@blogger.com