MPS editor very slow to edit a long list of items ( add a new child, delete child, etc..)

Hello MPS team!

I face performance issues with my language. When I add a new child to my parent node, it is very slow because MPS, instead of only adding the new child, also refreshes all the other children. 
We have a long list of children nodes and many information in each (it is a kind of array), so it can take up to 10 minutes only to add a new child node.

Can I speed up the process to make it more bearable?  It would be nice to be able to prevent the editor from refreshing everything each time when it is not necessary. 

I noticed that I don't have the problem if the children do not access the model or parent node. But it would be very hard to modify the whole code and some important functionalities would be lost.

Could you help me in that matter or provide more information/hints about those issues ?

Thank you very much.

Kind regards,
Etienne Helfer

6 comments

That's kind of difficult without any further information about what type of code you use under your concepts. A few generic ideas that come to mind:

  • Your editor may have performance problems. For example, indent collections have (at least in the past) been usually slower than vertical or horizontal collections.
  • If you have many checks (constraints, checking rules) that have to go (possibly multiple times) through the entire collection, computing a lot on the way, that may slow it down.
  • Is your addition operation done by a factory or just a default operation? If it's self-written code, that may be the culprit.

Maybe other people have ideas as well...

0

Thanks for the ideas Eugen,


I have mainly model access fields with show-if conditions and some apply-if conditions that sometime access the model and the ancestors nodes for read-only operations.

I have vertical grid collections with horizontal grid collections inside (it is a kind of list of arrays or matrix).
We can rapidly have too much elements and the MPS always refresh the whole list of arrays when we modify the list.

I have factories but it is fast if there is few elements in the list. I think the display is slow. 

I have MPS 3.3.5

0

Please try version 3.4 (currently in public preview), we are constantly working on improving editor performance so it should be better in 3.4.

0

Hello thanks.

Here is my feedback, I have installed the 3.4 version. It is better but still slow.

Maybe there is a way to access the tree structure without refreshing/recomputing all the possibly impacted elements ?  


Currently i have the feeling that it is not clear which functionalities/operations I can use or not in my language (performance wise). I spent hours to solve my problem recompiling each time and guessing what the editor may like or not. 

 

Best regards,

Etienne

0

Hi,

same problem here. When classes are larger (e.g. >2000 LOC with a lot of members) editing latency at classifier member level, for instance adding PlaceholderMembers is very high. As soon as the cursor goes into a statement list (even larger ones) everything is acceptable. Tried 3.4 as well, but still not text-like ;)

I know very large documents are bad style, but some systems we investigate/import are unfortunately implemented this way...

Cheers

Ben

P.S: MacBook Pro 2,8GHz i5 with 16GB RAM.

0

@Etienne: here are also some things that slow the editing down for me:

1) open type checker dialog window 

2) leaving a search string in the document search

3) many type-errors/warnings/infos

4) CPU-Boost not active

5) Spotify :D

0

Please sign in to leave a comment.