Skip to content

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

License

Notifications You must be signed in to change notification settings

st3v3nmw/awesome-django-performance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.
  • dj-tracker - dj-tracker is 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.

Database

Tools

  • 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.

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-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.
  • 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.

Articles

Servers

Tools

  • 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.

Articles

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.

Books

About

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

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Contributors 3

  •  
  •  
  •