Skip to content
Vladimir Panteleev edited this page Sep 13, 2021 · 2 revisions

Main Window

The main window allows selecting a process and threads to profile.

If no threads are selected, Very Sleepy will profile all threads, and attach to the process as a debugger to profile new threads as they are created. To prevent this (e.g. if you wish to attach another debugger during profiling), simply select all threads.

To create a new process and begin profiling it immediately, select FileNew from the main menu.

Results Window

The results window is partitioned as follows:

  • The Functions view displays a table of all functions and collected profiling data.

    The table columns are:

    • Name - the name of the function. If debugging symbols are not available, the instruction address will be displayed instead.
    • Exclusive - displays the time spent during the execution of that function, but not of any of its callees.
    • Inclusive - displays the time spent during the execution of that function, including any other functions called from it (and their callees, and so on).
    • % Exclusive, % Inclusive - as above, but as a percentage of the program's total execution time.
    • Module - the module (.exe or .dll file) this function belongs to.
    • Source File - the path to the source code file containing the function. If debugging symbols are not available, this column will display [unknown]).
    • Source Line - the line number corresponding to the beginning of the function's definition. If debugging symbols are not available, this column will display 0).
    • Address - the address in memory of the function's compiled code.

    Rows displayed in green indicate functions which have their callees collapsed (see below). Functions in common Windows DLLs will be automatically collapsed by default.

    You can click on a table column header to sort the functions by that column. Click twice to sort in the opposite direction.

    Right-clicking on a table row allows you to perform the following actions:

    • Copy - copies the selected row data as tab-delimited text.
    • Collapse all child calls - hide all callees of the selected function, and group their time into the selected function's time. This option is a toggle, and can be undone by unchecking it.
    • Collapse all module calls - as above, but applies to all functions from that function's module.
    • Set root to function - hide all functions which are not callees of the selected function. This option can be undone using the ViewReset Profile Root menu entry.
    • Filter functions/modules/source files to ... - hide all functions except for the ones matching the indicated parameter. Can be undone using the ViewReset Filters menu entry, and adjusted in the Filters view.
    • Highlight function - display the selected function's table row with a yellow background.

    You can also select multiple rows by clicking while holding down Shift or Ctrl.

  • The Source view displays the program's source code, and automatically tracks the functions selected in other views. It also indicates total time spent for each source code line.

  • The Log view displays messages from the debugging engine used for debug symbol resolution, and other messages.

  • The Averages view displays the callers and callees of the selected function.

  • The Call Stacks view displays all unique call stacks that have been observed by Very Sleepy, sorted by frequency of occurrence. You can use the arrow buttons to cycle through them.

  • The Filters view allows editing which functions are filtered (as via the filtering right-click menu entries).

Clone this wiki locally