What's new

Is there a way to help get performance stats from Alibre and figure out bottlenecks?

sacherjj

Senior Member
I'm running Alibre on a decent machine:

AMD 7950x
64 GB
3090ti

Going into a 1440p display as part of 3 display setup.

I routinely run into 2-4 second pauses when mouse wheel zooming in or selecting edit of a sketch of REALLY simple projects.

Do we have a way to enable logs or performance metrics to try to drill down on why performance pauses?
 

Ralf

Alibre Super User
As a first step, you can check the refresh rate of each monitor.
It should be higher than 59,9 Hz.
(A cheap Chinese HDMI cable can very quickly become a problem.);)
 

sacherjj

Senior Member
Main monitor is a 144 Hz, Secondary is 75 Hz, small 1080p is 60 Hz.

We aren't talking about lagging display, but nothing changing as Alibre hangs for seconds and then catches up. I'll try to correlate to any logged issues.
 

sacherjj

Senior Member
Here is video of what occurs. I can close Alibre, re-open and continually reproduce this. Not sure if we have lazy loading of something that occurs first time I go sketching. I just seem to run into it all the time and it is annoying.


So I see about 4 seconds until anything happens, then hang when loading sketch of 14 seconds. Tons of time with a modern computer.
 

EPowIPi

Senior Member
Perhaps a profiler could help to understand what is happening in these "freezing" periods. A first very easy attempt would be the app level profiler "Very Sleepy": http://www.codersnotes.com/sleepy/
You just run it, run Alibre, click on refresh, select Alibre, click on "Profile All", switch to Alibre and move around the model as you did it in the video. And then look at the result to see whether there is time spent in unusual functions.

Here how this looks for me, without any freezes:
1738343278793.png

If that doesn't help then you need a system level kernel profiler that also records in more detail what is happening in system libraries, drivers (e.g. GPU driver) and in the kernel and all processes at once. One would be the Windows Performance Analyzer (https://learn.microsoft.com/en-us/windows-hardware/test/wpt/windows-performance-analyzer). This is a little bit more involved. There are various tools for working with that (=recording the traces to watch in WPA) in Visual Studio, but also open source tools like this: https://github.com/google/UIforETW. This site also contains links how to use this.
 
Last edited:

sacherjj

Senior Member
I've done mostly Linux and Rust development so more familiar with Linux sys calls. Been over a decade removed from Windows development.

CaptureAlibreHang.PNG
 

EPowIPi

Senior Member
Interesting that our two traces are so different. The main difference I can see between your two traces is that in the first case WaitForMultipleObjects has a much higher waiting percentage time. And exclusive is almost the same percentage as inclusive (I think that means that it waits for resources that are not occupied by any Alibre thread but by something external).
But I fear you will have to open a support ticket, I guess we cannot solve this from this information alone.
 

Ralf

Alibre Super User
The file should also be saved locally, i.e. not with Onedrive, or other clouds, network storage...
 

sacherjj

Senior Member
Also, make sure that Alibre is set up to use the GPU and not the APU... Just thought I'd say that.
Their process of changing the path of Alibre with every upgrade makes you go in and setup Performance mode each upgrade. I just did that again with 28.2.

This did help, as the 4 / 14 pause turned into 2 / 7. But still much more than I would expect, unless lazy loading or processing something large at the first load of Sketch components.
 

DavidJ

Administrator
Staff member
From 28.0.2.28126, the setting of graphics adapter SHOULD work much better and not need intervention each time. Maybe a little soon to be entirely confident of that...
 

DavidJ

Administrator
Staff member
Anything that is repeatable in terms of triggering delays should be reported to support. Obviously if you get any clues from your own analysis, provide that information too...

Development can only investigate (and hopefully fix) when they have cases/examples to study.
 
Top