Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI perfomance #25

Closed
MatillaMartin opened this issue May 8, 2017 · 1 comment
Closed

GUI perfomance #25

MatillaMartin opened this issue May 8, 2017 · 1 comment

Comments

@MatillaMartin
Copy link

When profiling a great number of functions and zooming-in in the GUI, the application becomes non responsive. This is probably due to the density of the function blocks.

I can think of two elegant solutions: Single frame focus, Expandable blocks.
Single frame focus would allow the user to select a single frame to analyze in the GUI, thus reducing the number of blocks to work with in the GUI, increasing the performance.
Expandable blocks works similarly, where each higher level function block can be expanded to show the lower level. There can be an expand / contract all option too..

@bombomby
Copy link
Owner

Hi Martin, I've fixed this problem in 42754dc.
DirectX can't handle efficiently vertices with very large coordinates outside the screen - this was the main performance loss. To solve this problem I just split every thread into 20 smaller drawcalls and cull non-visible. The new version should work abot 20x times faster at large zoom.

If you need to zoom even deeper - feel free to tweak DIPSplitCount constant. The bigger this value - the faster Brofiler works at large zoom. I'd say that if you have 10 threads - you can safely increase this constant up to 200 without any problems.

But be carefull with the latest version - GUI is under major reconstruction at the moment and will be significantly improved soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants