Полагаю, вы подаете в суд на c ++.Вы можете определить класс трассировки времени, который отображает метки времени
/* define this in a header file */
class ShowTimestamp {
private:
static int level_; // nested level for function call tree
private:
const char *func_;
public:
ShowTimestamp(const char* f) : func_(f) {
std::cout << func_ << ":" << (level_++) << ":begin\t" << GetTickCount64() << std::endl;
}
~ShowTimestamp() {
std::cout << func_ << ":" << (--level_) << ":end\t" << GetTickCount64() << std::endl;
}
};
#ifndef NO_TRACE_TIMER
#define TIMESTAMP_TRACER ShowTimestamp _stt_(__FUNCTION__);
#elif
#define TIMESTAMP_TRACER
#endif
Уровень_ должен быть объявлен в файле CPP отдельно.
// You need to define the static member in a CPP file
int ShowTimestamp::level_ = 0;
В своем коде вы можете сделать
int Foo(int bar) {
TIMESTAMP_TRACER
// all the other things.
......
return bar;
}
Если вы больше не хотите отслеживать таймер, вы можете просто определить NO_TRACE_TIMER