dj-tracker
ipdb
dj-tracker | ipdb | |
---|---|---|
7 | 6 | |
72 | 1,812 | |
- | - | |
6.6 | 2.9 | |
6 months ago | 9 months ago | |
Python | Python | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" 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.
ipdb
-
The new pdbp (Pdb+) Python debugger!
Why not just use Python’s built-in pdb debugger or another existing one like ipdb or pdbpp?
-
Why do people say that Neovim cannot be an IDE?
Unfortunately, I couldn't find any official documentation. But here is a small cheatsheet about it and here is there is github repo.
-
Debugging Python programs without an IDE
Integration of IPython pdb
-
You say “cave dweller debugging”, I say debug logging
One thing I have used is drop into the Python debugger (also ipdb) from within a signal handler. Then I can run a kill, and have it drop into the debugger.
There are some of cute hacks to get a remote debugger which I haven't used in years.
https://github.com/sassoftware/epdb can start and connect to a remote debug instance
https://github.com/gotcha/ipdb
- Debug in VIM
-
Reloadr – Hot code reloading tool for Python
Now tie in some ipdb [1] and you have a pretty sweet setup. Also depending on your serving framework it might also have hot reloading as well, tornado, flask, etc.
[1]https://github.com/gotcha/ipdb
[2] https://www.tornadoweb.org/en/stable/autoreload.html https://werkzeug.palletsprojects.com/en/0.14.x/serving/
What are some alternatives?
django-debug-toolbar - A configurable set of panels that display various debug information about the current request/response.
pudb - Full-screen console debugger for Python
Cyberbrain - Python debugging, redefined.
pdbpp - pdb++, a drop-in replacement for pdb (the Python debugger)
python3-trepan - A gdb-like Python3 Debugger in the Trepan family
flask-debugtoolbar - A toolbar overlay for debugging Flask applications
winpdb - Fork of the official winpdb with improvements
vimspector - vimspector - A multi-language debugging system for Vim
pyringe - Debugger capable of attaching to and injecting code into python processes.
wdb - An improbable web debugger through WebSockets