/awesome-django-performance

A curated list of libraries, tools, blog articles, and books to help profile and optimize your Django project

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Django Performance Awesome

A curated list of libraries, tools, blog articles, and books to help profile and optimize your Django project.

Contents

Profiling

Tools

  • Django Silk - Silk is a live profiling and inspection tool for the Django framework. Silk intercepts and stores HTTP requests and database queries before presenting them in a user interface for further inspection.
  • Django Debug Toolbar - A configurable set of panels that display various debug information about the current request/response.
  • pyinstrument - Call stack profiler for Python. Shows you why your code is slow!
  • cProfile - cProfile and profile provide deterministic profiling of Python programs.

Database

Tools

Articles

Caching

Tools

  • django-cacheback - Smart caching for Django using Celery to refresh cached items asynchronously.
  • django-memoize - A cache for function or method results.
  • django_model_cached_property - Useful for caching of property results for more time than lifetime of object during the request.
  • django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
  • django-cachalot - Caches your Django ORM queries and automatically invalidates them.
  • django-cache-machine - Automatic caching and invalidation for Django models through the ORM.
  • django-ormcache - A cache manager mixin that provides some caching of objects for the ORM.
  • PolyScale.ai - A high performance Data Delivery Network (DDN) that accelerates databases. Using smart caching, it improves query performance, lowers latency and makes data access and scale engineering a breeze, both on premise and at the edge.

Articles

Serialization

Tools

  • drf_orjson_renderer - A JSON renderer and parser for Django Rest Framework using the orjson library. Backed by Rust, orjson is safe, correct and fast.
  • Django Compression Middleware - Django middleware to compress responses using algorithms such as Zstandard, Brotli, and gzip.
  • serpy - A super simple object serialization framework built for speed.
  • django-rest-marshmallow - Marshmallow schemas for Django REST framework.
  • marshmallow - An ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.

Articles

Tasks

Tools

  • Celery - Distributed Task Queue.
  • Celery Flower - Real-time monitor and web admin for Celery distributed task queue.
  • django_dramatiq - A Django app that integrates with Dramatiq.
  • Django-RQ - A simple app that provides django integration for RQ (Redis Queue).
  • Django Q - A multiprocessing distributed task queue for Django.

Testing

Tools

  • Locust - An easy to use, scriptable and scalable performance testing tool.
  • hey - HTTP load generator, ApacheBench (ab) replacement.

Monitoring

Tools

  • Sentry SDK - The official Python SDK for Sentry.io (has an APM offering).
  • statsd - Daemon for easy but powerful stats aggregation.
  • django-prometheus - Export Django monitoring metrics for Prometheus.io.
  • django-postgres-metrics - A Django application that exposes a bunch of PostgreSQL database metrics.
  • Grafana - Operational dashboards for your data here, there, or anywhere.
  • apm-agent-python - Official Python agent for Elastic APM.
  • New Relic Python Agent - Instruments your application for performance monitoring and advanced performance analytics with New Relic.

Servers

Tools

  • Varnish Cache - A web application accelerator also known as a caching HTTP reverse proxy.

Articles

Books