浏览该文件的文档.
17#ifndef CYBER_PROFILER_PROFILER_H_
18#define CYBER_PROFILER_PROFILER_H_
29#if defined(__GNUC__) || defined(__GNUG__)
30#define AFUNC __PRETTY_FUNCTION__
31#elif defined(__clang__)
32#define AFUNC __PRETTY_FUNCTION__
37#define TOKEN_JOIN(x, y) x ## y
38#define UNIQUE_NAME(x) TOKEN_JOIN(prefix_perf, x)
40#define PERF_BLOCK(name, ...) \
41 apollo::cyber::profiler::Block UNIQUE_NAME(__LINE__)(name); \
42 apollo::cyber::profiler::BlockManager::Instance()->StartBlock( \
43 &UNIQUE_NAME(__LINE__));
45#define PERF_BLOCK_END \
46 apollo::cyber::profiler::BlockManager::Instance()->EndBlock();
48#define PERF_FUNCTION(...) PERF_BLOCK(AFUNC, ## __VA_ARGS__)
52#define PERF_BLOCK(...)
54#define PERF_FUNCTION(...)