A curated list of libraries, tools, blog articles, and books to help profile and optimize your Django project.
- 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.
 - dj-tracker - 
dj-trackeris an app that tracks your queries to help detecting some possible performance optimisations listed in Database access optimization - Pyroscope - Grafana Pyroscope is an open source software project for aggregating continuous profiling data. It allows you to profile your applications in real-time, and then analyze the data to identify bottlenecks and performance issues.
 
- django-auto-prefetching - Never worry about n+1 performance problems again (DRF views level).
 - djangorestframework-queryfields - Allows clients to control which fields will be sent in the API response.
 - django-virtual-models - Improve performance and maintainability with a prefetching layer in your Django project.
 - django-perf-rec - Django-perf-rec is like Django's assertNumQueries on steroids. It lets you track the individual queries and cache operations that occur in your code.
 - django-auto-prefetch - Automatically prefetch foreign key values as needed (ORM level).
 - django-zen-queries - Explicit control over database query execution in Django applications.
 - nplusone - Auto-detecting the n+1 queries problem in Python.
 - django-pickling - Efficient pickling for Django models.
 - django-test-query-counter - A Django toolkit for controlling query count when testing.
 - PgBouncer - Lightweight connection pooler for PostgreSQL.
 - psycogreen - Integration of psycopg2 with coroutine libraries.
 
- Database access optimization - Outlines the steps to take when attempting to optimize your database usage.
 - Django Performance Improvements - Part 1: Database Optimizations
 - Automating Performance Testing in Django
 - Performing raw SQL queries
 
- 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-request-cache - A Django app that provides a new cache on every request object. The cache is only kept within the request/response cycle.
 - django-ormcache - A cache manager mixin that provides some caching of objects for the ORM.
 - Varnish Cache - A web application accelerator also known as a caching HTTP reverse proxy.
 
- 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.
 
- Improve Serialization Performance in Django Rest Framework - How we reduced serialization time by 99%!
 - Python Serialization Benchmark - A set of benchmarks for Python serialization frameworks.
 
- 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.
 
- gevents - A coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libev or libuv event loop.
 
- Locust - An easy to use, scriptable and scalable performance testing tool.
 - hey - HTTP load generator, ApacheBench (ab) replacement.
 
- 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.
 
- The Temple of Django Database Performance - By Andrew Brookins.
 - High Performance Django - By Peter Baumgartner and Yann Malet.