The New Profiler - Feedback and Issues
-
I figured it's best to open another thread just for this. Bugs + feedback, so probably better here than GitHub.
Here's some early feedback. Using as a custom popup.
- if the viewer is opened in the script editor as a tab, and there's a trace in it (like if you enable the zap icon to profile Init, then recompile with F5), right clicking anywhere within the tab will crash HISE
- It should be possible to collapse the group dropdowns in the Viewer with a single click (right now it takes two clicks on the arrow to close e.g. the AudioThread group dropdown)
- WASD still aren't "consumed", meaning there are audible OS error sounds as you hold the keys down.
- There's no way to scroll down the list in the ProfileViewer, mouse scroll doesn't work, PgDown doesn't work, WS is for zoom in-out
- It would be better to have WASD be used for navigating around the canvas, and Q and E for zoom in/out (which is also already handled with CMD/CTRL + Mousewheel).
- It's probably better to tone down the white highlight for the event, it can be quite jarring when moving the mouse over the event list
-
@aaronventure good stuff and happy to receive feedback about this, but have you tried the "official" UI where it appears in the scriptwatchtable tab? this should get rid of the crash (I think the crash is because the viewer is looking for the menu bar which doesn't exist in your setup)?
You need to reset the workspace (but beware as it will delete your customizations if you did any to the default HISE layout).
It should be possible to collapse the group dropdowns in the Viewer with a single click.
I had this before, but I clicking on it accidentally so I changed it to double click, but I'm happy to follow the hive mind suggestion on what works best here.
There's no way to scroll down the list in the ProfileViewer, mouse scroll doesn't work, PgDown doesn't work, WS is for zoom in-out
yes, on my todo list, for now I was able to use this without the requirement for vertical scrolling (the fold-all in the context menu and a large monitor will compensate for that missing feature for mid-sized profiles), but sure. I'd rather leave the WASD keys as they are and add the up / down keys to the arrow-up down (or page up/down as you suggested), since zooming & scrolling horizontally is what you'll do most of the time.
It's probably better to tone down the white highlight for the event, it can be quite jarring when moving the mouse over the event list
jupp that's annoying, but I'd rather remove the search on hover and change it to a single click (while moving the current single click function to double click).
-
@Christoph-Hart said in The New Profiler - Feedback and Issues:
I'd rather leave the WASD keys as they are and add the up / down keys to the arrow-up down (or page up/down as you suggested), since zooming & scrolling horizontally is what you'll do most of the time.
My suggestion allows the user to control the entire navigation with a single hand. That's why I suggested it. Your left hand is already there most of the time.
That said, if you can also enable horizontal scroll, that would be great, but I realize this is your internal renderer, so you may not have all the callbacks in place.
@Christoph-Hart said in The New Profiler - Feedback and Issues:
have you tried the "official" UI where it appears in the scriptwatchtable tab? this should get rid of the crash (I think the crash is because the viewer is looking for the menu bar which doesn't exist in your setup)?
oh nice, this is a great spot for it. Yes, no crash here on right click.
@Christoph-Hart said in The New Profiler - Feedback and Issues:
upp that's annoying, but I'd rather remove the search on hover and change it to a single click (while moving the current single click function to double click).
sounds good.
@Christoph-Hart said in The New Profiler - Feedback and Issues:
I had this before, but I clicking on it accidentally so I changed it to double click, but I'm happy to follow the hive mind suggestion on what works best here.
Ah, I see, it works for the entire titlebar, and the events, too. Maybe you can make it so that it's single click fold if you click on the arrow, but double click fold if you click anywhere else on the bar?
-
@aaronventure What OS are you on?
-
@aaronventure alright, Q/E is now zooming and W/S is navigating the new vertical scrollbar. I'm not 100% convinced with the key mapping as you'll be using zoom at 95% of the time and the W/S keys are more ergonomic, but maybe it's just my muscle memory.
The stat rows now also behave better: single click to highlight the items, double click to zoom to and Cmd click to set the item as root (this is the same as Cmd+clicking on an item in the timeline).
BTW are there things you're missing from Perfetto? You seem to be one of the few other people who have been using it and I plan to remove PERFETTO from HISE once the profiler is finished.
-
@Christoph-Hart well, it seems like my PM project pushes it beyond the limits, and this test version is only a single voice without any spatialization.
As you can see based on the scrollbar, there are a lot of events. Though it seems counterintuitive to drop them all here, as 99% of these are from a single network. What happens when there are more networks like these?
This is a scriptnode with 200+ nodes. I just clicked the record button (the Profiler is in the watchtable section), played around for a few seconds and turned it off. It took a couple of seconds to display the readout, but the performance is unusable on macOS (14.5, M3 Max). It slows to a crawl where it takes 10 seconds to execute anything (including mouse hovers). I tried disabling OpenGL and it's definitely not it. The only medicine is Force Quit.
In an empty project, it looks fine and the new navigating shortcuts feel great! It's just that system sound that keeps playing every time any of the keys is pressed or held down, at least on macOS.
The only thing that seems to be missing is the framerate, but I did wonder whether it was ever a valid and reliable metric because of all the asynchronous painting calls.
-
@aaronventure you don't have to record multiple seconds, for profiling audio callbacks this is an eternity (with 400 ms you still get around 40-50 audio callbacks which should be enough to get a averaged performance overview). But yeah I'll probably need to add a cap to how many events you can record, as this adds up to millions of events and no amount of optimization can make this smooth - in fact I'm rather surprised how smooth the UI is with a reasonable amount of profiling events (up to a few thousand) given how much we all are hating on the JUCE UI renderer lately.
BTW, if you just want to record the audio callback or a specific node network, then you can just use the profiling buttons in the workspaces. The old profile button in the scriptnode workspace will start and stop profiling only the selected scriptnode network. In this mode, it will also coallascate multiple audio callbacks into one and you'll get a nice timeline of the overall performance of the audio callback:
It's just that system sound that keeps playing every time any of the keys is pressed or held down, at least on macOS.
I can't reproduce this (first because I'm not on macOS currently and second because I have disabled the system sounds because I'm not a crazy person), but I think I fixed the reason they occur, but if they persist in the latest commit, let me know then I'll spend more time addressing this.
-
@Christoph-Hart said in The New Profiler - Feedback and Issues:
second because I have disabled the system sounds because I'm not a crazy person),
If I do that on macOS, then the screen will flash white, and it'll be so much worse lmao.
But nicely done, the latest commit fixed it, no more system sounds on macOS.
No budge on the performance improvement for bigger networks. I can slap together a quick example of a large network if you want to test how it behaves. The quickest way would be to have a modchain with 10 nodes connected, and its peak or something outputting to a mul node in the main chain, and that whole thing now duplicated 20 times or so.
-
Just here to say this new functionality seems nothing else than just amazing... I'll try it next week on the FX I will release in a few days!