Логирование времени выполнения кода
От: sax0n Украина  
Дата: 25.08.11 14:44
Оценка:
Есть иерархия классов логирования на С++
class ICustomEvent;
class EventManager;

// call
{
EventManager::Instance()->AddEvent( new ICustomEvent( /* params */ ) );
}


По поводу не использовать велосипед просьба не писать.
Проблема такая, что мне необходимо засекать время выполнения кода. По большому счету — выполнение кода текущего стека
{
EventManager::Instance()->AddEvent( new ICustomEvent( /* params */ ) ); // start timer
// code

} // stop timer


Не могу придумать, как можно удобно сделать этот самый класс таймера.
хочется:
1. создавать объект на стеке, который в конструкторе засекает, в деструкторе сохраняет значение в событие
2. писать все не более, чем в 1 строчку.

Вариант сейчас такой созрел: написать декоратор для событий, который будет иметь 2 доп. метода: старт/стоп
Создать класс, который будет получать ссылку на декоратор, создаваться на стеке, и выставлять все параметры. но это много и как-то некрасиво.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.