瀏覽代碼

can now add comments

banana-cakes
FelixBrendel 6 年之前
父節點
當前提交
635af49d52
共有 1 個文件被更改,包括 23 次插入11 次删除
  1. +23
    -11
      profiler.hpp

+ 23
- 11
profiler.hpp 查看文件

@@ -29,7 +29,7 @@ struct Profiler {
inline thread_local static FILE* out_file = nullptr;


Profiler(const char* file, const char* func, const int line, char* custom_name) {
Profiler(const char* file, const char* name, const int line, const char* comment1, const char* comment2) {
call_depth += 1;

// if we never used this thread before
@@ -61,27 +61,39 @@ struct Profiler {
printf("could not open %s\n", file_name);
}

// initially write the performance frequency
LARGE_INTEGER pf;
QueryPerformanceFrequency(&pf);
fprintf(out_file, "%lld,,,,\n", pf.QuadPart);

is_initialized = true;
}
QueryPerformanceCounter(&tmp_time);
fprintf(out_file, "->,%lld,%s,%s,%d\n",
tmp_time.QuadPart,
(custom_name ?
custom_name :
func), file, line);
fprintf(out_file, "->,%lld,%s,%s,%d,%s,%s\n",
tmp_time.QuadPart, name, file,
line, comment1, comment2);
};

~Profiler() {
call_depth -= 1;
QueryPerformanceCounter(&tmp_time);
fprintf(out_file, "<-,%lld,,,\n", tmp_time.QuadPart);
fprintf(out_file, "<-,%lld,,,,,\n", tmp_time.QuadPart);
if (call_depth == 0)
fflush(out_file);
};
};

# define profile_this() Profiler profiler(__FILE__, __FUNCTION__, __LINE__, 0)
# define profile_with_name(name) Profiler profiler(__FILE__, __FUNCTION__, __LINE__, name)
# define profile_this() Profiler profiler(__FILE__, __FUNCTION__, __LINE__, "", "")
# define profile_with_name(name) Profiler profiler(__FILE__, name, __LINE__, "", "")
# define profile_with_comment(c1) Profiler profiler(__FILE__, __FUNCTION__, __LINE__, c1, "")
# define profile_with_comments(c1,c2) Profiler profiler(__FILE__, __FUNCTION__, __LINE__, c1, c2)
# define profile_with_name_and_comment(name,c1) Profiler profiler(__FILE__, name, __LINE__, c1, "")
# define profile_with_name_and_comments(name,c1,c2) Profiler profiler(__FILE__, name, __LINE__, c1, c2)
#else
# define profile_this() do {} while(0)
# define profile_with_name() do {} while(0)
# define profile_this() do {} while(0)
# define profile_with_name(name) do {} while(0)
# define profile_with_comment(c1) do {} while(0)
# define profile_with_comments(c1,c2) do {} while(0)
# define profile_with_name_and_comment(name,c1) do {} while(0)
# define profile_with_name_and_comments(name,c1,c2) do {} while(0)
#endif

Loading…
取消
儲存