优秀的 Django 性能¶
性能分析¶
- Django Silk - Silk 是一个用于 Django 框架的实时性能分析和检查工具。Silk 会拦截并存储 HTTP 请求和数据库查询,然后在用户界面中展示,以供进一步检查。
- Django Debug Toolbar - 一个可配置的面板集,显示有关当前请求/响应的各种调试信息。
- pyinstrument - Python 的调用堆栈分析器。告诉你为什么你的代码运行慢!
- cProfile - cProfile 和 profile 提供 Python 程序的确定性性能分析。
- dj-tracker -
dj-tracker是一个可以追踪你的查询,以帮助检测一些可能的性能优化的应用,这些优化在 数据库访问优化 中有所列出。
数据库¶
- django-auto-prefetching - 再也不用担心 n+1 性能问题(DRF 视图级别)。
- djangorestframework-queryfields - 允许客户端控制 API 响应中将发送哪些字段。
- django-virtual-models - 在你的 Django 项目中,通过预取层提高性能和可维护性。
- django-perf-rec - Django-perf-rec 就像 Django 的 assertNumQueries 的强化版。它让你跟踪代码中发生的单个查询和缓存操作。
- django-auto-prefetch - 根据需要自动预取外键值(ORM 级别)。
- django-zen-queries - 在 Django 应用中对数据库查询执行的显式控制。
- nplusone - 在 Python 中自动检测 n+1 查询问题。
- django-pickling - Django 模型的高效 pickling。
- django-test-query-counter - 一个 Django 工具包,用于在测试时控制查询次数。
- PgBouncer - PostgreSQL 的轻量级连接池。
- psycogreen - psycopg2 与协程库的集成。
- 数据库访问优化 - 描述了试图优化数据库使用时需要采取的步骤。
- Django 性能提升 - 第一部分:数据库优化
- 在 Django 中自动化性能测试
- 执行原始 SQL 查询
缓存¶
- django-cacheback - 使用 Celery 异步刷新缓存项的 Django 智能缓存。
- django-memoize - 一个函数或方法结果的缓存。
- django_model_cached_property - 对于在请求期间对象生命周期更长的属性结果的缓存非常有用。
- django-cacheops - 一个带有自动精细的事件驱动失效的 ORM 缓存。
- django-cachalot - 缓存你的 Django ORM 查询并自动使它们失效。
- django-cache-machine - 通过 ORM 自动缓存和失效 Django 模型。
- django-request-cache - 一个 Django 应用,为每个请求对象提供新的缓存。缓存仅在请求/响应周期内保持。
- django-ormcache - 一个缓存管理器混入,为 ORM 提供一些对象的缓存。
- Varnish Cache - 一个 web 应用加速器,也被称为缓存 HTTP 反向代理。
- PolyScale.ai - 一个高性能的数据传输网络(DDN),可加速数据库。使用智能缓存,它可以提高查询性能,降低延迟,并使数据访问和扩展工程变得轻松,无论是在本地还是在边缘。
序列化¶
- drf_orjson_renderer - 使用 orjson 库的 Django Rest Framework 的 JSON 渲染器和解析器。orjson 由 Rust 支持,安全、正确且快速。
- Django Compression Middleware - Django 中间件,使用 Zstandard、Brotli 和 gzip 等算法压缩响应。
- serpy - 一个超简单的对象序列化框架,专为速度而构建。
- django-rest-marshmallow - Django REST 框架的 Marshmallow 架构。
- marshmallow - 一个 ORM/ODM/框架无关的库,用于将复杂的数据类型,如对象,转换为和从原生 Python 数据类型。
- 提高 Django Rest 框架的序列化性能 - 我们如何将序列化时间减少了 99%!
- Python 序列化基准测试 - 一套 Python 序列化框架的基准测试。
任务¶
- Celery - 分布式任务队列。
- Celery Flower - Celery 分布式任务队列的实时监控和 web 管理工具。
- django_dramatiq - 一个与 Dramatiq 集成的 Django 应用。
- Django-RQ - 一个简单的应用,为 RQ (Redis Queue) 提供 django 集成。
- Django Q - 一个为 Django 提供的多进程分布式任务队列。
服务器¶
- gevents - 一个基于协程的 Python 网络库,使用 greenlet 在 libev 或 libuv 事件循环之上提供高级同步 API。
测试¶
监控¶
- Sentry SDK - Sentry.io 的官方 Python SDK(提供 APM 服务)。
- statsd - 方便但强大的统计聚合守护进程。
- django-prometheus - 为 Prometheus.io 导出 Django 监控指标。
- django-postgres-metrics - 一个 Django 应用,公开一系列 PostgreSQL 数据库指标。
- Grafana - 在这里、那里或任何地方为你的数据运行仪表盘。
- apm-agent-python - Elastic APM 的官方 Python 代理。
- New Relic Python Agent - 用于性能监控和高级性能分析的 New Relic 的工具,可以对你的应用进行检测。
书籍¶
- Django 数据库性能的神庙 - 作者 Andrew Brookins。
- 高性能 Django - 作者 Peter Baumgartner 和 Yann Malet。