Python Performance Profiling for Production
~ It's About Time ~
Mocha is a performance profiler that can monitor the performance of your production Python, and makes results easy to aggregate and search through.
Mocha is designed for Purposeful Profiling. This means that you only use Mocha around code of interest, instead of dumping all code performance logs and mining it later.
Useful for Profiling:
-
🌎 API performance -
🚀 CI/CD stage / granular performance -
💡 ML training & inference jobs -
📀 Database queries -
📊 Data pipelines / compute jobs
What gets measured gets managed!
Bad performance has real world consequences, and is often a result of lack of visibility, even if you are logging it, if it's not be easy to get to, it will be ignored.
Installation
pip install mocha-time
docker run -p 9000:9000 -v mocha.db:mocha.db mocha-dev/mocha
Demo
import mocha
mocha.init(url="http://localhost:9000")
mocha.demo()
Usage
# Start / Stop
p = mocha.start("Foobar")
pass
p.stop()
# Profiler
with mocha.Profiler("Foobar"):
pass
# Function Decorator
@mocha.profiler("Foobar")
def ml_training():
pass