-
Notifications
You must be signed in to change notification settings - Fork 34
Conversation
I assume this should not be included in the CHANGELOG before we finish the epic, right? |
The profiling mode only grays out edges currently. Should anything else be included? |
The minimum and maximum running times are currently recomputed on every change, to keep things simple. If this should be too costly then I would suggest to use an existing priority queue implementation rather than the algorithm in the issue description. That should likely provide some simplicity and best performance. |
src/rust/ide/view/graph-editor/src/component/node/input/area.rs
Outdated
Show resolved
Hide resolved
Co-authored-by: Adam Obuchowicz <[email protected]>
Co-authored-by: Adam Obuchowicz <[email protected]>
…to wip/fr/profiling
I do not understand it tbh. The algorithm described in the issue is not recomputing minimum and maximum running times on every change - and the algorithm was part of the requirements. If you want to change the requirements, let's talk about it before implementation, please. Also, we care a lot about performance here - we've been talking about it during planning / estimation meeting - I told then that If there is any more efficient algorithm, let's talk about it before implementing the task. Could you describe the algorithm that uses the priority queue step by step? If it has better performance, it should be implemented instead. However, again, we should have been talking about it before implementing this task, not after, as it would mean throwing away some part of the work - am I correct here? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not implemented accroding to the spec, see my comment above please.
The only thing that currently happens from the user's perspective is that ctrl+P. Switches the colors off. The profiling mode can only be used when the whole epic is finished. I would suggest to update the CHANGELOG then.
To make sure that I understand it right, by background you mean the area inside the node that is behind the text and currently white?
I created another issue for that, as you requested. It is not implemented yet.
It is not there yet. I have a question about the design before I implement this. The icon should probably be used as indicator to let users know when they are in profiling mode. We could try to do this through color or present it as a switch between modes. Maybe we will also add more modes later. What is your opinion on this?
I implemented it this way, because it was almost no additional effort and makes it a bit easier to discuss the algorithm. There are slightly different ways how the priority queues could be used. What Adam suggested, would be to use a |
I just implemented that syntax highlighting for types will be disabled in profiling mode and the performance during the transition is incredibly bad, roughly 5-10 FPS in the interface demo scene. @farmaazon @wdanilo Does one of you have an idea why that could be? |
|
@MichaelMauderer, would you have time to test this PR to make sure that it works in all edge cases? |
Felix, please ping me (and mark me as re-requested for the review) when this will be ready for final review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I spotted one regression during testing: I cannot change the project name.
I cannot reproduce this problem. Can you describe the exact steps? |
I first, did all the steps of scenario https://docs.google.com/spreadsheets/u/1/d/1RatJDM_f9_3bvYhl3Bpq2d8SyKgtVdrV1RkGxPU17c8/edit#gid=0 to the point where the project name should be changed. I was unable to edit it, neither by ctrl+click nor by double click.
|
I am still not able to reproduce this. It might be helpful if you find a minimal sequence of actions that causes this. |
Well, actually just opening project and trying to rename it shows the problem. If it is not reproducible on your side, then I will look into it tomorrow.
|
@s9ferech @farmaazon I have the same issue on develop, however only if I build with gnu-flavored rustc toolchain. Also, it seems to happen only in |
That is very interesting. For a long time we had a problem that the error stripes appeared in front of nodes on some systems, but not on others, right? Could that be related? I think the breadcrumbs contain some invisible shapes as mouse targets. Maybe the objects are in the wrong order when you run it and the mouse events do not arrive at the right one. Does that sound possible? |
@s9ferech Interesting theory, might be possible. TBH recently I haven't seen the error stripes issue but if such ordering issues can appear and disappear on its own, then there might be actually something wrong in that area. Relying on some unspecified behavior or something else that makes objects in different order depending on build environment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The bug will be fixed once #1620 will be closed.
Original commit: enso-org/ide@199abd8
Pull Request Description
This adds a profiling mode with running time indicators to the graph editor, following the description of issue #1069. This PR includes just the visual part. Retrieval of the profiling information is handled in Issue #1068.
The profiling mode can be entered and exited through ctrl+p. (Holding ctrl causes the node labels to appear temporarily.)
(Outdated recording)
The appearance has an edge case when the node gets smaller than the running time label (Outdated recording):
Important Notes
Checklist
Please include the following checklist in your PR:
CHANGELOG.md
was updated with the changes introduced in this PR.