dj-tracker
nplusone
dj-tracker | nplusone | |
---|---|---|
7 | 2 | |
72 | 974 | |
- | - | |
6.6 | 0.0 | |
6 months ago | over 1 year ago | |
Python | Python | |
BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dj-tracker
-
Finding n + 1 problem on a local machine
I'd recommend dj-tracker. It can show you exactly which field your related queries come from and you'll easily be able to know when your N+1 problem is solved or not using the dashboard. See the Detect and resolve related queries page on the docs. (It comes with very little overhead compared to silk or debug-toolbar and it persists all the data in a database so you don't lose when you quit the server).
-
Queryset performance when joining tables?
You could try dj-tracker. It'll help you detect N+1 or any related queries but also apply the deferring optimisation suggested by eysidi.
-
A Django app that tracks your queries to help optimize them
That was the little story for dj-tracker and here is what it can do in summary: - Keep track of all fields accessed (allowing to use only or defer when some fields aren't used - Keep track of all attributes accessed (it can then give you a hint to use .values or .values_list) - Show how effective a queryset's cache is (and provide hints on using the .iterator optimisation) - Show all related queries in the same section and where they come from (making it super easy to detect N+1 queries) - Detailed traceback, SQL and template information for each query - Everything is persisted in a database so you can see how your application performs over time
- A Django app that helps monitor and improve your database queries
-
Django performance optimization techniques
For these reasons and many others (we lose the data as soon as we quit the session, it only keeps track of queries inside a request/response cycle i.e not in a background job for example...), I started building an app (dj-tracker) that can give you various insights into your queries but also hints on how to optimize them.
-
dj-tracker - A django app that tracks your queries and helps optimise them
Hmm, interesting. There is a Github action that builds wheels and uploads them to Pypi. That's why I didn't specify Cython in the project's dependencies. I guess I'll need to look at it more in-depth. I'll also update the documentation re urls.
nplusone
-
Finding n + 1 problem on a local machine
- https://github.com/jmcarp/nplusone can be enabled on dev / test and warn / fail tests
-
Ban 1+N in Django
Rails has Bullet[0] to help identify and warn you against N+1
Does Django have anything active? Quick search revealed nplusone[1] but its been dead since 2018.
[0] https://github.com/flyerhzm/bullet
[1] https://github.com/jmcarp/nplusone
What are some alternatives?
django-debug-toolbar - A configurable set of panels that display various debug information about the current request/response.
django-orm-plus
Cyberbrain - Python debugging, redefined.
funcy - A fancy and practical functional tools
python3-trepan - A gdb-like Python3 Debugger in the Trepan family
django-auto-prefetching - Automatic prefetching for Django
winpdb - Fork of the official winpdb with improvements
pellet - Pellet helps improve your Django app performance by discovering N+1 queries.
pyringe - Debugger capable of attaching to and injecting code into python processes.
django-seal - Django application providing queryset sealing capability.
wdb - An improbable web debugger through WebSockets
django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.