orbit
orbit copied to clipboard
Beginner's usage question
I wish to use orbit in a project that I am developing. But I am not used to working with this kind of program. Do you have any kind of detailed tutorial, video or documentation I can use? The one at the readme did not work (My program appears on the list but does not have its performance measured).
Thanks for reaching out. Unfortunately, we do not have detailed tutorials (or a like) to point to at this moment. It is on our roadmap, though.
For a first start consider the workflow from our README.md:
- Select a process in the list of currently running processes in the "Home" tab.
- The list of loaded modules will appear on the bottom of the "Home" tab. If debug symbols were found for a module, it will be highlighted in blue.
- Right click on the module(s) for which you want to load debug information and select "Load Symbols". The "Functions", "Types" and "Globals" tabs will get populated.
- Select functions you wish to profile in the "Functions" tab by right clicking and choosing "Hook".
- In the "Capture" tab, start profiling by pressing 'X'. To stop profiling, press 'X' again. You can zoom time using the scroll wheel. To zoom vertically, hold 'CTRL' while scrolling. You can also ctrl+right-click and drag to zoom time. Press 'SPACE' to Zoom the last 2 seconds of capture.
- When you select a function in the "Capture" view, the full callstack will be available in the "Callstack" tab. You can select functions to be profiled in the callstack tab as well. Also, if code is available on your machine, it will be displayed in the "Code" tab.
- You can select sections of the per-thread sampling event track to get a sampling report of your selection.
Note, this description refers to the last released Windows version (1.0.2). If you are using a more recent version of Orbit on Linux, the controls are a bit differently organized. However, the basic workflow is the same.
In general, a simple capture (based-on callstack sampling) will give you an overview about your programs. You can find functions that either take a long time to execute or are executed very frequently. If you know in which functions you are interested, you can "hook" them, and get their execution times shown as a gantt chart.
If you have any concrete follow-up questions, please don't hesitate to ask them in this issue.
Thank you, for the instructions. But, Do I need to compile my code with some kind of special compilation flag? Because my program is on the list but it does not have its performance measured.
@VitorCMatias Which version of Orbit are you using? Do you compile the current source code on main or do you use the (old) Windows release?
(To directly answer your question: You do not need a special compilation flag, apart from making sure you are getting symbols.)
#4272 should add additional context to our documentation. Please consider re-opening if there is anything missing.