pytutorial/helper/austin/README.md

86 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

# Austin -- Time and memory profiling
{:.no_toc}
<nav markdown="1" class="toc-class">
* TOC
{:toc}
</nav>
## Top
We want to see where your Python program requires the most processing time and memory. For this we will use a time- and memory profiler called Austin.
Questions to [David Rotermund](mailto:davrot@uni-bremen.de)
## Installing Austin
Obviously, first we need to get [Austin](https://github.com/p403n1x87/austin). On the Austin website, there a several methods described how to install it.
### Linux as user
Compiling
```shell
git clone --depth=1 https://github.com/P403n1x87/austin.git
cd austin
autoreconf --install
./configure
make
```
Adding it to the Python3 bin directory, e.g.
```shell
cp src/austin ~/P3.11/bin/
```
### Windows
Go [here](https://github.com/P403n1x87/austin/releases/latest) and download the latest Windows64 msi installer. And don't let Windows intimidate you:
![image4](image4.png)
![image3](image3.png)
## Installing [Austin TUI](https://github.com/P403n1x87/austin-tui)
```shell
pip install austin-tui
```
Under Windows you might need (not tested yet):
```shell
pip install windows-curses
```
## Installing VS Code Austin extension
You need to install this extension:
![image0](image0.png)
## Using austin-tui
This is how it looks like under Linux. I haven't tested it under Windows yet.
I am using the PyTorch MNIST network example.
### Without memory profiling
```shell
austin-tui ~/P3.9/bin/python3 network.py
```
![image1](image1.png)
### With memory profiling
```shell
austin-tui -m ~/P3.9/bin/python3 network.py
```
![image2](image2.png)