Optimize your code using profilers
Available only in PyCharm Professional: download to try or compare editions
PyCharm allows running the current run/debug configuration while attaching a Python profiler to it. Note that the Diagrams plugin that is bundled with PyCharm should be enabled.
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. If you are Windows 64 bit user, you have to install Python 32 bit, to make vmprof work. Install 32-bit Python as described on the page Python Releases for Windows.
A profiler runs in the following order: vmprof, yappi, cProfile.
Click
on the main toolbar and select Profile <current run.debug configuration name> or select the same command from Run in the main menu.
Ensure that the profiler has started in the dedicated tab of the Run tool window.
Item
Description
Saves the profiling results in the <project name>.pstat file for cProfile profiler and the <project name>.prof file for vmprof.
Stops the profiler.
Closes the profiler tab.
On the toolbar of the profiler tab in the Run tool window, click
.
Inspect the profiling results:
cProfilevmprofThe snapshot is saved to the default location under %LOCALAPPDATAPATH%
\JetBrains on Windows and ~\<product><version> /snapshots /Library on macOS. For CProfiler, it is saved as <project name>.pstat file. The file opens in the <project name>.pstat tab in the editor, which consists of two tabs: Statistics and Call Graph:/Caches /JetBrains /<product><version> /snapshots Item
Description
Name
The name of the function.
Call Count
Number of calls of the chosen function.
Time
Execution time of the chosen function plus all time taken by functions called by this function. The percentage of time spent in this call related to time spent in all calls in the parentheses.
Own Time
Own execution time of the chosen function. The percentage of own time spent in this call related to overall time spent in this call in the parentheses.
Tip: To search for a particular file in the Name column of the Statistics table, click any cell and start typing the target name. The Search field appears in the header of the column so that you can edit the search criteria.
The snapshot is saved to the default location under %LOCALAPPDATAPATH%
\JetBrains on Windows and ~\<product><version> /snapshots /Library on macOS. For vmprof, it is saved as <project name>.prof file./Caches /JetBrains /<product><version> /snapshots The file open in the <project name>.pstat tab in the editor, which consists of three tabs: Statistics, Call Graph, and Call Tree
Tip: Jump to the source code of any file and preview the Profile lines profiling results in the gutter. Lines consuming more processor time are marked yellow and red.
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:
The source code of the function opens in the editor.
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 selected function:
Note the color codes on the Call Graph. The functions marked red consume more time; the fastest functions are green.
Use the toolbar buttons to work with the graph:
Item
Description
Click this icon to increase the scale of the diagram. Alternatively, press NumPad +.
Click this icon to decrease the scale of the diagram. Alternatively, press NumPad -.
Click this icon to restore the actual size of the diagram.
Click this icon to make the contents fit into the current diagram size.
Click this icon to apply the current layout, selected from the Layout node of the diagram context menu.
Click this icon to scale the diagram to the edges of the window.
Click this icon to copy the diagram into the clipboard.
Click this icon and then select any diagram area with the mouse: the selected area will be copied into the clipboard.
Click this icon to export a diagram using various formats, which are compatible with third-party tools, to a file, to an image, or open the diagram in the browser.
You can select and configure the following options:
: click this button to select a third-party editor to which you can export the diagram.
: click this button to save the diagram to a clipboard using one of the available formats.
: click this button to save the current diagram as a file. You can use one of the available formats from the list.
: click this button to save the current diagram in the PNG format.
: click this button to print the diagram.
Click this button to refresh the whole diagram.
Click this button to open the Diagram settings where you can configure additional options.
Go to Tools | Open CProfile snapshot.
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.
Thanks for your feedback!