2011-11-22 10 views
36

Używam paska narzędzi Django do debugowania, aby profilować moją witrynę i próbować dowiedzieć się, dlaczego niektóre wyświetlenia trwają tak długo. To było niezwykle cenne, jeśli chodzi o sprawdzenie, jakie zapytania mam i ile mnie kosztują, ale nie mogę zrozumieć, jak czytać panel czasu.Pasek narzędzi Debian: poznanie panelu czasu

Rozglądałem się po okolicy, szukając dokumentacji, ale nie mogę niczego znaleźć. Powinienem wspomnieć, że jestem samoukiem, stosunkowo nowym programistą, więc mogą to być terminy, które są znane znajomemu programistom.

Oto wynik:

Resource   Value 
User CPU time 3760.000 msec 
System CPU time 340.000 msec 
Total CPU time 4100.000 msec 
Elapsed time  4625.453 msec 
Context switches 248 voluntary, 467 involuntary 

Czy ktoś może mi pomóc dowiedzieć się, jak czytać to, i to, co każda z wartości reprezentuje?

Dzięki.

+0

Czy sądzisz, że tworzenie instancji klas w widoku i wywoływanie ich metod może prowadzić do bardziej mimowolnych/dobrowolnych przełączeń kontekstowych? Pozdrawiam: – Luchux

Odpowiedz

41

użytkownika czas CPU: Czas kodu po stronie serwera prowadził podczas przetwarzania żądania

CPU System czas: kod systemu operacyjnego czasu nazywany przez kod po stronie serwera prowadził podczas przetwarzania żądania

Łączny czas CPU: całkowity czas, aby w pełni odpowiedzieć raz wniosek został przyjęty (użytkownik + system)

Upływający czas: Czas od zgłoszenia żądania.

Przełączniki kontekstowe: Ma to związek z wątkami. Przełączniki dobrowolne są czasami, gdy wątek spał z własnej woli (zwykle w oczekiwaniu na wystąpienie pewnego przetwarzania, które trzeba kontynuować), podczas gdy przymusowe przełączanie jest czasem, gdy system wymusił uśpienie nici w celu uruchomienia innego wątku (zwykle część procesów asynchronicznych). W rzeczywistości jest to system bardzo niskiego poziomu, którego nie potrafiłem tu sobie wyobrazić. Jeśli chcesz dowiedzieć się więcej, po prostu wyszukaj "przełączanie kontekstów".

+2

dzięki @Chris to bardzo pomocne. strona jest bardzo ciężka, więc dane doprowadziłyby mnie do przekonania, że ​​głównym powodem powolnego ładowania jest faktyczne renderowanie strony, prawda? pasek narzędzi mówi także, że kwerendy sql trwały 900ms, ale całkowity czas procesora systemu to tylko jedna trzecia tego, jak mogę pogodzić te dwa punkty danych? dzięki! –

Powiązane problemy