2015-06-03 26 views
15

Ich habe eine moderate Größe Website, aber es dauert etwa 30 Sekunden für PyCharm Runserver zu starten und bereit sein, die App zu starten. Wenn ich die App anstelle von "Debugging" starte, dauert es nur ca. 3 Sekunden.Pycharm Django Debugging ist wirklich langsam

Was sind einige der Dinge, die ich tun kann beschleunigen den Code ändern und Debugging-Zyklus. Ich benutze einen anständigen MBP mit 16 GB RAM. Also Hardware ist nicht das Problem.

Ich habe/Media-Dateien aus dem Projekt ausgeschlossen. Ich habe keine andere große Anzahl von Dateien, die Indexprobleme verursachen werden Ich benutze sowohl Postgres und Mongo db. Ich bin Django 1.7 + ein Dutzend Pakete wie Laufen:

dj-static==0.0.6 
django-annoying==0.8.1 
django-appconf==1.0.1 
django-bootstrap-form==3.2 
django-bootstrap-pagination==1.5.1 
django-compressor==1.5 
django-extensions==1.5.5 
django-filter==0.10.0        
django-guardian==1.2.5 
django-storages-redux==1.2.3 
django-widget-tweaks==1.3 
djangorestframework==3.1.2       
django-jinja==1.4.1 

Diese Debug-Ausgabe ist:

/Users/user1/.virtualenvs/env-test/bin/python "/Applications/PyCharm 4.5 EAP.app/Contents/helpers/pydev/pydevd.py" --multiproc --save-signatures --client 127.0.0.1 --port 64097 --file /Users/user1/gitroot/website1/manage.py runserver 0.0.0.0:8000 --verbosity 2 
Connected to pydev debugger (build 141.1245) 
pydev debugger: process 63926 is connecting 

pydev debugger: process 63954 is connecting 

Performing system checks... 

System check identified no issues (0 silenced). 
You have unapplied migrations; your app may not work properly until they are applied. 
Run 'python manage.py migrate' to apply them. 
June 03, 2015 - 09:08:52 
Django version 1.7.7, using settings 'myproject.settings' 
Starting development server at http://0.0.0.0:8000/ 
Quit the server with CONTROL-C. 

UPDATE: Seit diesem Beitrag PyCharm die Fähigkeit Cython als Dolmetscher zu verwenden, hat . Ich denke, das hat die Dinge etwas verbessert. Ich habe auch Runserverplus benutzt, was meiner Meinung nach schneller läuft.

Antwort

5

Nun, der Debugger ist nur langsam und es gibt nicht viel, was Sie dagegen tun können. Verwenden Sie den Debugger nur, wenn Sie ihn unbedingt benötigen (z. B. wenn Sie einen besonders schwer fassbaren Fehler beheben).

Ich denke nur an eine Sache, die den Debugger von PyCharm beschleunigen kann und die Einstellung "Sammeln von Laufzeitinformationsinformationen für Code Insight" (unter Datei> Einstellungen> Build, Ausführung, Deployment> Python-Debugger).

+1

ist es wirklich ein Schmerz, dass es keine Lösung gibt. Es gibt auch einige Tickets in Jetbrains Problemverfolgung: [PY-10031] (https://youtrack.jetbrains.com/issue/PY-10031#u=1401303786357), [PY-10427] (https: //youtrack.jetbrains .com/issue/PY-10427 # tab = Kommentare) aber keine weiteren Hinweise – linqu

3

Für mich imporved das Problem, wenn ich in Erinnerung hatte ich die Debugger aktiviert Typinformation zu sammeln.

  • Hit Ctrl-Shift-A oder unter Settings > Build, Execution, Deployment > Python Debugger suchen collect run-time types information for code insight

  • Deaktivieren Sie das Kontrollfeld ein und drücken apply

  • sehen, ob das hilft

Ich betreibe Pycharm Community 5.0.1

1

Ich bemerkte, dass die Debug-Ausgabe des ursprünglichen Posters die Nachricht über Cython nicht enthält. Ich kam zu diesem Post, weil ich nicht herausfinden konnte, warum mein pycharm-Debugging so langsam war, aber später wurde mir klar, dass ein Vorschlag zur Beschleunigung des Debuggers genau hier in meiner Debug-Ausgabe ist.

"<some-path-to-python>/python" "/Applications/PyCharm.app/Contents/helpers/pydev/setup_cython.py" build_ext --inplace 

Ich hoffe, die Leute haben das versucht. Ich denke, diese Antwort ist für die Nicht-Ausgabe Leser der Welt.

1

brauchen auf diese zu experimentieren, von Jetbrain blog genommen:

  1. alle Haltepunkte
  2. drehen löschen off Ausnahmen
  3. keine Laufzeittyp Einblicke

Aber auch aussehen Tracing bei der Deaktivierung von Django Model Checking etc, um zu beschleunigen.

Ich habe einen Patch verwendet, um Testfälle zu beschleunigen, 10x schneller zu laufen. Also, wenn Sie TDD tun, Funktionen sind weniger schwer als Ansichten. Damit können Sie den Fehler schnell beheben.