miroiu / nodify

Highly performant and modular controls for node-based editors designed for data-binding and MVVM.
https://miroiu.github.io/nodify
MIT License
1.38k stars 224 forks source link

[Question] Node movement within ItemControl becomes slow #122

Closed lyq-lin closed 4 months ago

lyq-lin commented 4 months ago

Hello Miroiu. Thank you for sharing with the open source community. I am currently learning how to develop this control. At present, we have encountered a problem where when multiple nodes in the ItemSource overlap, using another node to pass through this stack of overlapping nodes will result in a slow movement speed. But I can hardly find the reason, and it seems that this phenomenon does not exist in your open-source software. Do you know what the reason is? If you could provide me with an answer, I would greatly appreciate it. Once again, thank you for sharing open source software, which has been very helpful in opening up a new perspective for me.

miroiu commented 4 months ago

Hi lyq-lin! This could be caused by rendering complex elements/styles for nodes or connections. I would start removing UI elements from the visual tree one by one until I find the most expensive elements to render.

I noticed that having many overlapping connections can hurt performance. The built-in connections are a bit expensive in terms of rendering, however, you can create a custom connection if you don't need all the features (see #121).

If none of the above works you can also have a look at this issue: #60

lyq-lin commented 4 months ago

thanks for you help. Your answer is simple but useful. I think I know how to continue and learn more performance optimization solutions. Thanks again!

lyq-lin commented 4 months ago

Hello! @miroiu . I'm a person from China. .Net developer and also a content creator. I learned quite a bit about the technology and the interesting things I learned at Notiy. I had an idea if I could make a video of what I had learned about Notify and post it online (in order to share knowledge). I would recommend more people to use Notify, of course, if you don't want to or think it's a bit of a hassle, I'll discontinue the idea.

miroiu commented 4 months ago

Hi @lyq-lin, it's awesome to hear you've learned to use Nodify, especially with the steep learning curve. I'm excited to see what applications you create and share in your videos!