# Austin -- Time and memory profiling {:.no_toc} ## 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)