PyCharm 2019.2 Help

Optimize your code using profilers

Overview. yappi and CProfile vs VMprof

PyCharm allows running the current run/debug configuration while attaching a Python profiler to it.

If you have a yappi profiler installed on your interpreter, PyCharm starts the profiling session with it by default, otherwise it uses the standard cProfile profiler.

Besides these two tracing profilers, PyCharm supports also sampling (statistical) profiler vmprof, which should be installed on the selected Python interpreter.

Note the following:

  • A profiler runs on both local and remote interpreters.

  • A profiler runs in the following order: vmprof, yappi, cProfile.

Starting the profiling session

To start the profiling session, do one of the following:

  • Click profiler on the main toolbar.

  • Choose Run | Profile <current run.debug configuration name> from the main menu.

The profiler starts in the dedicated tab of the Run tool window.

Working with the profiling results

On the toolbar of the profiler tab, click Capture. This action results in the following:

  • The snapshot is saved to the default location under .PyCharmXX/system/snapshots directory under the user's home. For CProfiler, it is saved as <project name>.pstat file:

    Results

  • The profiling results open in the <project name>.pstat tab in the editor, which consists of two tabs: Statistics and Call Graph:

    Results

    For vmprof, it is saved as <project name>.prof file.

Jumping to the source code

To navigate to the source code of a certain function, right-click the corresponding entry on the Statistics tab, and choose Navigate to Source from the context menu:

Jump to source

The source code of the function opens in the editor.

Viewing call graph

To navigate to the call graph of a certain function, right-click the corresponding entry on the Statistics tab, and choose Show on Call Graph from the context menu.

The Call Graph tab opens with the function un question highlighted:

Call graph

To increase the graph scale, click Zoom in; to show actual size of the graph, click Actual size.

Use the toolbar button Fix content to fit contents into the current diagram size.

To decrease the graph scale, use Zoom out.

Note the color codes on the Call Graph. The functions marked red consume more time; the fastest functions are green.

Content size

Reviewing the existing snapshots

To open an existing snapshot, follow these steps:

  1. From the main menu, choose Tools | Open CProfile snapshot.

  2. In the Select PStat file dialog, choose the desired file with the extension pstat.

    The profiling results open in the <project name>.pstat tab in the editor.

Last modified: 6 November 2019