2015-06-03 15 views
15

Mam stronę o umiarkowanych rozmiarach, ale zajmie to około 30 sekund, aby PyCharm uruchomił Runserver i był gotowy do uruchomienia aplikacji. Jeśli "uruchomię" aplikację zamiast "debugowania", rozpocznie się tylko około 3 sekund.Debianowanie Pycharm Django jest bardzo powolne.

Co mogę zrobić, aby przyspieszyć cykl zmiany kodu i debugowania. Używam przyzwoitego MBP z 16 GB pamięci RAM. Więc sprzęt nie jest problemem.

Mam wykluczone/pliki multimedialne z projektu. Nie ma żadnej innej dużej liczby plików, które spowodują problemy z indeksowaniem. Używam zarówno bazy danych Postgres, jak i Mongo. Używam Django 1.7 + kilkanaście pakietów takich jak:

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 

To wyjście debugowania:

/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: Od tego postu pycharm ma możliwość korzystania Cython jako tłumacza . Myślę, że nieco poprawiło to sytuację. Zacząłem również korzystać z Runserverplus, który moim zdaniem działa szybciej.

Odpowiedz

5

Cóż, debugger jest powolny i niewiele można z tym zrobić. Po prostu nie używaj debuggera, chyba że go absolutnie potrzebujesz (np. Rozwiązujesz problem szczególnie nieuchwytnego błędu).

Mogę wymyślić tylko jedną rzecz, która może przyspieszyć debugger PyCharm, a to wyłączyć ustawienie "Zbieraj informacje o typach przebiegu dla wglądu kodu" (znajdujące się w Plik> Ustawienia> Kompilacja, Wykonanie, Wdrożenie> Python Debugger).

+1

To naprawdę ból, że nie ma rozwiązania. są też bilety na śledzenie emisji jetbrain: [PY-10031] (https://youtrack.jetbrains.com/issue/PY-10031#u=1401303786357), [PY-10427] (https: //youtrack.jetbrains .com/issue/PY-10427 # tab = Komentarze), ale bez dalszych wskazówek – linqu

3

Dla mnie kwestia dzięki zwiększonej kiedy pamiętał miałem włączona debugera do zbierania informacji o typie.

  • Hit Ctrl-Shift-A lub poszukać pod Settings > Build, Execution, Deployment > Python Debugger dla collect run-time types information for code insight

  • usuń zaznaczenie pola i uderzył apply

  • Zobacz, czy to pomaga

biegnę Pycharm Community 5.0.1

1

Zauważyłem, że oryginalne wyniki debugowania plakatu nie zawierają komunikatu o cytoncie. Przyszedłem do tego posta, ponieważ nie mogłem się domyślić, dlaczego mój debuger pycharm był tak powolny, ale później zdałem sobie sprawę, że sugestia przyspieszenia debuggera jest właśnie tutaj w moim wyjściu debugowania.

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

Mam nadzieję, że ludzie próbowali tego. Sądzę, że ta odpowiedź dotyczy czytelników, którzy nie czytają tego świata.

1

Trzeba eksperymentować na te, zaczerpnięte z Jetbrain blog:

  1. usunąć wszystkie punkty przerwania
  2. wyłączyć śledzenie wyjątki
  3. nie czas podtrzymania Typ spostrzeżeniami

Ale też wyglądają przy wyłączaniu sprawdzania modelu Django w celu przyspieszenia.

Użyłem łatki, aby przyspieszyć testy, 10 razy szybciej. Tak więc, jeśli robisz TDD, funkcje są mniej ciężkie niż widoki. Pozwoli to szybko rozwiązać problem.

Powiązane problemy