Moduł Profiler

Nagłówek: Profiler.hpp
Elementy modułu: Profile module

Wstęp

common::Profiler to prosta klasa do pomiaru czasu różnych operacji, która ułatwia znajdowanie miejsc w kodzie powodujących największe opóźnienia.

Klasa common::Profiler to podstawowa klasa do pomiaru. Przechowuje hierarchię obiektów klasy common::ProfilerItem. Można tworzyć jej obiekt samemu lub skorzystać z domyślnego w zmiennej common::g_Profiler.

Pomiar

Zbieranie statystyk opiera się na wielokrotnym powtarzaniu pomiarów (automatycznie wyciągana jest średnia) z użyciem jednej z tych metod:

Przykład:

void Operacja1()
{
 Wait(11);
}

void Operacja2()
{
  {
    PROFILE_GUARD("Pod-operacja 1");
    Wait(23);
  }
  {
    PROFILE_GUARD("Pod-operacja 2");
    Wait(10);
  }
}

void Test()
{
  for (uint i = 0; i < 10; i++)
  {
    {
      PROFILE_GUARD("Operacja 1");
      Operacja1();
    }
    {
      PROFILE_GUARD("Operacja 2");
      Operacja2();
    }
  }
}

Wyniki

Do wyników pomiaru można się dostać za pomocą:

Przykład:

string s;
common::g_Profiler.FormatString(&s);
std::cout << s << std::endl;

Dla powyższego kodu wynik wygląda tak:

Operacja 1 : 14.92 ms (10)
Operacja 2 : 46.8442 ms (10)
  Pod-operacja 1 : 31.2242 ms (10)
  Pod-operacja 2 : 15.4256 ms (10)

Generated on Wed Dec 16 20:44:52 2009 for CommonLib by  doxygen 1.6.1