bombomby / optick

C++ Profiler For Games
https://optick.dev
MIT License
2.95k stars 296 forks source link

Not recording session #90

Closed GameDeva closed 5 years ago

GameDeva commented 5 years ago

OptickApp.png Attachments: [OptickApp.png] Once I have the app running and then click start profiling session, optick begins to capture frames. Then when I want to stop, there is a red sqaure icon, but it says start profiling session still and not 'stop'.

Then once I've clicked that and exited the app, optick is sat in this same place. Even if I save the session, close optick and reopen that session there is nothing there.

I've tried recording a session a few times now, but I always get stuck here. Is there something I am missing?

quick edit: This is when I have my project added to the Optick_vs2017 GUI solution and added a reference to the Optick c# project. I my project from that solution and then have a separate Optick application from 'optick-master\bin\vs2017\x64\Debug' that is what I start the profiling from.

bombomby commented 5 years ago

Hi. Looks like you exit your application a bit too early while Optick is still transferring data over the network. Could you try to keep your application alive until the capture is fully copmleted?

GameDeva commented 5 years ago

Hiya, I've tried keeping the application running and stopped the the profiling session. Out of the 10 times I've tried I managed to get 1 successful record, however the other times it freezes at the 'capuring frame --' part when I press stop profiling session button. My application also freezes and does not respond.

How long does the transfering usually last. I've tried waiting around 30-40 seconds.

Thanks for the response!

edit:: I was wondering if there is an option to record a session without using the GUI to start and stop, but a session is recorded automatically when the application is run and then closed. Maybe if that saves the session data under a folder I could then open it on the optick GUI application to take a look.

bombomby commented 5 years ago

How much RAM do you have? Optick requires at least 2-3GB of RAM for large captures, so you'll need at least 8GB of RAM on your machine.

To do furhter analysis: could you please try ConsoleApp.exe sample which is included in the release package to see whether it works or not? If it works ok - could you please debug break both Optick.exe and and your app to see where exactly Optick is stuck? I'll need callstacks for bot applications (don't forget to remove any functions not related to Optick from the callstacks before posting them here if your application is covered with NDA).

How long does the transfering usually last. I've tried waiting around 30-40 seconds.

It depends on the size of the capture and some other factors. It is usually around 30Mb/sec.

I was wondering if there is an option to record a session without using the GUI to start and stop.

Yes, this feature is scheduled for the next milestone: https://github.com/bombomby/optick/issues/23. ETA is about 2 weeks.

GameDeva commented 5 years ago

Hiya, thank you again so much for your response. I tried it on the sample projects and it worked like a charm, so I decided to remove everything reinstall, compile and add to my project. Now it is working beautifully.

I think it was the way I was trying to add it to my project since I was a little confused with how to start using it. I had initially added the optickcore project into my solution and then made a reference to that. I now just realised all I have to do is dynamically link the optick dll with my solution and run it then run the gui application.

My apologies for any time wasted. Also, looking forward to the new feature :)

bombomby commented 5 years ago

Cool