Hello dear ForeUI team,
working with your great tool I discovered performance issues with my plots, which were not there at the beginning.
After some research in the foreui_plot.xml I found that the import/copy process of complex group of elements into other plot with existing elements+behaviors creates object id=”BehaviorRoot1″ class=”com.easynth.foreui.data.behavior.BehaviorRoot”.
There the tool stores some behaviors of the imported group of elements.
So far no problem with that. However if I delete some elements of that imported group, their behavior will stay in object id=”BehaviorRoot1″.
So if I copy/paste group of elements here and there, work with them, delete some unneeded elements, they will leave a huge amount of garbage in the foreui_plot.xml.
The garbage happens, when at least 1 element of that imported group of elements is still in the plot. When deleting the whole imported group, it will also delete all their behaviors(“BehaviorRoot1”) in foreui_plot.xml.
How to reproduce:
– Open new plot and create an element with defined behaviour
– Copy/paste a group of elements with defined behavior from other plot into the new plot
– Extract one element from that imported container and delete the rest of the imported group of elements
– Save the new plot and open foreui_plot.xml in text editor
– Search for id=”BehaviorRoot1″ and you will find all the behavior of the deleted elements
This issue is very serious and should be investigated. It not only can cause huge amount of garbage (very big file, long loading, bad performance), but also trigger events occasionally (that ́s what made me to investigate this issue).
The problem may be in the way the imported behaviour is stored. Maybe it is better to append all behaviors to the existing, instead of creating “BehaviorRootX” object every time.
As of now I fixed the issue by deleting the old behaviors and bringing the object id=”SelectorX” for the existing behaviors in order (0,1,2…).
If you need a sample, please let me know.
Sorry for not replying sooner, I am just back from my vacation… I will check them ASAP 🙂
The XML is generated by the Java API, which is a standard way to serialize the Java object. If we find some wrong data in the XML, that means something wrong in our data.
Anyway, I can reproduce the issue, so it is confirmed. We will investigate and fix it. Thanks for reporting the bug 🙂
Hope your enjoyed your vacation.
Looking forward to a solution for this issue.
It seems the imported element still carry the behaviorRoot from the old plot. We have fixed this in the newly released V3.80 SP5.
This question is now closed