Jakie są różnice między czasem zegara ściennego, czasem użytkownika i czasem procesora

14

Wykonujemy zadania obliczeniowe za pomocą GridEngine. Każde zadanie zwraca 3 razy:

  • Zegar ścienny
  • Czas użytkownika
  • Czas procesora

Jakie są różnice między tymi trzema? Która z tych trzech metod jest najbardziej odpowiednia do porównania wydajności dwóch aplikacji / skryptów

Peter Smit
źródło

Odpowiedzi:

18

Zegar ścienny to faktyczny czas potrzebny na wykonanie zadania. Jest to równoważne z mierzeniem czasu stoperem, a na zmierzony czas wykonania zadania może mieć wpływ wszystko inne, co system robi w danym momencie.

Czas użytkownik mierzy ilość czasu spędzonego CPU pracuje Twój kod. Nie uwzględnia to niczego innego, co mogłoby być uruchomione, a także nie liczy czasu procesora spędzonego w jądrze (na przykład we / wy pliku).

Czas procesora mierzy całkowity czas, jaki procesor spędził na uruchomieniu kodu lub czegokolwiek, czego wymaga kod. Obejmuje to czas jądra.

Pomiar „czasu użytkownika” jest prawdopodobnie najbardziej odpowiedni do pomiaru wydajności różnych zadań, ponieważ na najmniejszy wpływ będą miały inne rzeczy zachodzące w systemie.

Greg Hewgill
źródło
3

Z Wikipedii:

Termin „czas procesora użytkownika” może na początku być nieco mylący. Aby wyjaśnić całkowity czas (rzeczywisty czas procesora), jest to kombinacja czasu, jaki CPU spędza wykonując jakąś akcję dla programu i czasu, jaki CPU spędza wykonując wywołania systemowe dla jądra w imieniu programu. Gdy program zapętla się przez tablicę, kumuluje czas procesora użytkownika. I odwrotnie, gdy program wykonuje wywołanie systemowe, takie jak exec lub fork, kumuluje czas procesora systemu

Czas naścienny to rzeczywisty czas, jaki komputer zajmuje do wykonania zadania. Jest to suma trzech terminów: czas procesora, czas wejścia / wyjścia i opóźnienie kanału komunikacyjnego (np. Jeśli dane są rozproszone na wielu komputerach). W przeciwieństwie do czasu procesora, który mierzy tylko czas, w którym procesor aktywnie pracuje nad określonym zadaniem, czas ściany mierzy całkowity czas do zakończenia procesu. Różnica między nimi polega na czasie, który mija z powodu zaprogramowanych opóźnień lub oczekiwania na dostępność zasobów.

Maxwell
źródło