django-debug-toolbar icon indicating copy to clipboard operation
django-debug-toolbar copied to clipboard

Using PyCharm debugger with toolbar results in signficantly slower responses

Open yeisonvargasf opened this issue 5 years ago • 7 comments

Hi, Thanks for this library 👍

I have tested and django-debug-toolbar is causing an endless loading GET request in the browser, because the development server just hang processing the request, after check It in detail, I realized that 'debug_toolbar.middleware.DebugToolbarMiddleware' was causing the hang. This happens in the SQL panel aka 'debug_toolbar.panels.sql.SQLPanel', and It happens with a special SQL query:

SELECT * WHERE “TABLE_NAME".”id" IN (ID_1, ID_2, ID_3, .........) LIMIT 21

The slowness seems related to sqlparse. but I couldn't do more checks, so I haven't facts about that.

I was just doing a few performance testing with around 50 000 records.

Removing django-debug-toolbar fixes the issue.

Issue tested in versions: 2.1, 2.2 Current version used: 2.2

Django Settings:

DEBUG = True
INSTALLED_APPS.extend(
    ('debug_toolbar',
     'template_profiler_panel')
)
DEBUG_TOOLBAR_PANELS = {
    'debug_toolbar.panels.versions.VersionsPanel',
    'debug_toolbar.panels.timer.TimerPanel',
    'debug_toolbar.panels.settings.SettingsPanel',
    'debug_toolbar.panels.headers.HeadersPanel',
    'debug_toolbar.panels.request.RequestPanel',
    'debug_toolbar.panels.sql.SQLPanel',
    'debug_toolbar.panels.templates.TemplatesPanel',
    'debug_toolbar.panels.staticfiles.StaticFilesPanel',
    'debug_toolbar.panels.cache.CachePanel',
    'debug_toolbar.panels.signals.SignalsPanel',
    'debug_toolbar.panels.logging.LoggingPanel',
    'debug_toolbar.panels.redirects.RedirectsPanel',
    'debug_toolbar.panels.profiling.ProfilingPanel',
    'template_profiler_panel.panels.template.TemplateProfilerPanel',
}

Database Used: PostgreSQL 12

Also, I'm using Pycharm 2020.2 Debugger, #1302

yeisonvargasf avatar Aug 29 '20 18:08 yeisonvargasf

Does this slowness occur if you use the CLI python manage.py runserver to run the site? If not, then I'd prefer to close this in favor of #1302.

tim-schilling avatar Aug 31 '20 15:08 tim-schilling

Also, if you could create a sample project that would reproduce this for you in your environment, that would help expedite the process for fixing this greatly.

tim-schilling avatar Aug 31 '20 15:08 tim-schilling

I will create it in a sample project with my environment and I will test with only CLI, please keep this opened while I send the details (This week). Thanks for your fast answer!.

yeisonvargasf avatar Sep 01 '20 08:09 yeisonvargasf

I was able to reproduce slowness when using pycharm and the toolbar's example app, but I can't tell what specifically about the toolbar is conflicting with pycharm. For now, I'd suggest avoiding using the toolbar and when using pycharm's debugger.

tim-schilling avatar Sep 15 '20 22:09 tim-schilling

Renamed the title of this issue to be more explicit about what the concern is.

I reached out to Jetbrains and they recommended I create an issue for PyCharm for them to investigate on their end. The issue for that is here: https://youtrack.jetbrains.com/issue/PY-44534

tim-schilling avatar Sep 16 '20 14:09 tim-schilling

This also happens with vscode django debugger

ranjan-purbey avatar Sep 05 '23 12:09 ranjan-purbey

@ranjan-purbey can you open a ticket with VSCode to have them look at this issue from their perspective?

tim-schilling avatar Sep 05 '23 13:09 tim-schilling