we need to make a profiler_v3

v1
Brett 2024-07-11 19:09:41 -04:00
parent 456eeb12ac
commit c5f3d9ba3b
4 changed files with 12 additions and 12 deletions

View File

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.20)
include(cmake/color.cmake)
set(BLT_VERSION 0.18.5)
set(BLT_VERSION 0.18.6)
set(BLT_TEST_VERSION 0.0.1)
set(BLT_TARGET BLT)

View File

@ -16,7 +16,7 @@
namespace blt
{
// use the historical values (average) instead of the latest values
static inline constexpr std::uint32_t PRINT_HISTORY = 0x1;
static inline constexpr std::uint32_t AVERAGE_HISTORY = 0x1;
// print out the cycles
static inline constexpr std::uint32_t PRINT_CYCLES = 0x2;
// print out the wall time
@ -96,7 +96,7 @@ namespace blt
void endInterval(interval_t* interval);
void printProfile(profile_t& profiler, std::uint32_t flags = PRINT_HISTORY | PRINT_CYCLES | PRINT_THREAD | PRINT_WALL,
void printProfile(profile_t& profiler, std::uint32_t flags = AVERAGE_HISTORY | PRINT_CYCLES | PRINT_THREAD | PRINT_WALL,
sort_by sort = sort_by::CYCLES, blt::logging::log_level log_level = blt::logging::log_level::NONE);
void writeProfile(std::ifstream& stream, const profile_t& profiler);
@ -109,7 +109,7 @@ namespace blt
void endInterval(const std::string& profile_name, const std::string& interval_name);
void printProfile(const std::string& profile_name, std::uint32_t flags = PRINT_HISTORY | PRINT_CYCLES | PRINT_THREAD | PRINT_WALL,
void printProfile(const std::string& profile_name, std::uint32_t flags = AVERAGE_HISTORY | PRINT_CYCLES | PRINT_THREAD | PRINT_WALL,
sort_by sort = sort_by::CYCLES, blt::logging::log_level log_level = blt::logging::log_level::NONE);
void writeProfile(std::ifstream& stream, const std::string& profile_name);

@ -1 +1 @@
Subproject commit 8a889d3699b3c09ade435641fb034427f3fd12b6
Subproject commit d88c5e15079047777b418132ece5879e7c9aaa2b

View File

@ -21,27 +21,27 @@ namespace blt
#define SORT_INTERVALS_FUNC_MACRO(use_history, TYPE_END, TYPE_START, TYPE_TOTAL) \
[&use_history](const interval_t* a, const interval_t* b) -> bool { \
if (!use_history){ \
/*if (!use_history){ \
auto a_diff = a->TYPE_END - a->TYPE_START; \
auto b_diff = b->TYPE_END - b->TYPE_START; \
return a_diff > b_diff; \
} else { \
return a->TYPE_TOTAL < b->TYPE_TOTAL; \
} \
*/return a->TYPE_TOTAL < b->TYPE_TOTAL; \
/*}*/ \
}
#define INTERVAL_DIFFERENCE_MACRO(printHistory, interval) \
auto wall = printHistory \
? (static_cast<double>(interval->wall_total) / static_cast<double>(interval->count)) \
: static_cast<double>(interval->wall_end - interval->wall_start); \
: static_cast<double>(interval->wall_total); \
\
auto thread = printHistory \
? (static_cast<double>(interval->thread_total) / static_cast<double>(interval->count)) \
: static_cast<double>(interval->thread_end - interval->thread_start); \
: (static_cast<double>(interval->thread_total)); \
\
auto cycles = printHistory \
? ((interval->cycles_total) / (interval->count)) \
: (interval->cycles_end - interval->cycles_start);
: (interval->cycles_total);
enum class unit
{
@ -150,7 +150,7 @@ namespace blt
void printProfile(profile_t& profiler, std::uint32_t flags, sort_by sort, blt::logging::log_level log_level)
{
bool printHistory = flags & PRINT_HISTORY;
bool printHistory = flags & AVERAGE_HISTORY;
bool printCycles = flags & PRINT_CYCLES;
bool printThread = flags & PRINT_THREAD;
bool printWall = flags & PRINT_WALL;