Closed JanBliznicenko closed 2 years ago
Thank you very much for this report, I will review it with the team after pharo days
@JanBliznicenko Next week we are going to check this issue, because Carolina has covid, and we need her, to solve issues related to athens cairo and pharo
No problem @akevalion. We (I and Peter Uhnak) are trying to find some optimizations as well, just for Roassal 2 in our case (because that is the one we still use). We found and fixed/circumvented some issues like duplicate searching for an element or issues regarding integer operations compared to floats.
[ 100000000 timesRepeat: [ 3.0 / 2 ] ] timeToRunWithoutGC
:
"3.0 / 2.0": 91 ms
"3.0 / 2": 88 ms
"3 / 2.0": 286 ms
"3 / 2": 1373 ms
We will propose push request in a few days. But only for Roassal 2 for now, no capacity to do the same for Roassal 3 as well.
@JanBliznicenko Thank you for your patience, I will let you know how this progress
@JanBliznicenko here a little update
Currently I am working to integrate the rendering tree, it is going to be a QuadTree. This data structure is going to handle the queries about the visible shapes and more important the contains point search. For now I this is a prototype. We are facing this issue with Pablo an Carolina
@akevalion Great, looks promising. In the meantime, I prepared pull request for Roassal 2 with some improvements (efficiency, SVG export and few others): https://github.com/ObjectProfile/Roassal2/pull/64 I do not know yet which of these could and should be done in Roassal 3 as well.
@JanBliznicenko here another update
here you can see your example with 30k elements, each time the number one appears means that it process one event.
with the new search tree prepared specially for this example you can handle 500k elements. Loading part is slow because it is building the search tree, after that the search is really fast
Bug description When large Roassal 2 or 3 diagram is open, Pharo 8 is a little slow, but overall responsive and usable. Pharo 9 and 10 is WAY more unresponsive - processing mouse actions like dragging sometimes takes over 10 seconds or it completely freezes the image.
This issue is the same as https://github.com/pharo-project/pharo/issues/10515 , just with example for Roassal 3, not 2.
This issue is blocking us from moving to Pharo 9 and 10 with OpenPonk.
To Reproduce
Open large Roassal diagram:
c @ RSZoomableCanvasInteraction new.
c open.