28 #ifndef _PROFILE_TOOLS_H_
29 #define _PROFILE_TOOLS_H_
36 #ifdef ENABLE_PROFILING
37 #define PROFILE_FUNC(immortal_ptr_str) static profile_tools::local_call_account lcl_acc(immortal_ptr_str); \
38 profile_tools::call_frame cf(lcl_acc);
40 #define PROFILE_FUNC_SECOND(immortal_ptr_str) static profile_tools::local_call_account lcl_acc2(immortal_ptr_str); \
41 profile_tools::call_frame cf2(lcl_acc2);
43 #define PROFILE_FUNC_THIRD(immortal_ptr_str) static profile_tools::local_call_account lcl_acc3(immortal_ptr_str); \
44 profile_tools::call_frame cf3(lcl_acc3);
46 #define PROFILE_FUNC_ACC(acc) \
47 profile_tools::call_frame cf(acc);
51 #define PROFILE_FUNC(immortal_ptr_str)
52 #define PROFILE_FUNC_SECOND(immortal_ptr_str)
53 #define PROFILE_FUNC_THIRD(immortal_ptr_str)
56 #define START_WAY_POINTS() uint64_t _____way_point_time = epee::misc_utils::get_tick_count();
57 #define WAY_POINT(name) {uint64_t delta = epee::misc_utils::get_tick_count()-_____way_point_time; MDEBUG("Way point " << name << ": " << delta);_____way_point_time = misc_utils::get_tick_count();}
58 #define WAY_POINT2(name, avrg_obj) {uint64_t delta = epee::misc_utils::get_tick_count()-_____way_point_time; avrg_obj.push(delta); MDEBUG("Way point " << name << ": " << delta);_____way_point_time = misc_utils::get_tick_count();}
61 #define TIME_MEASURE_START(var_name) uint64_t var_name = epee::misc_utils::get_tick_count();
62 #define TIME_MEASURE_PAUSE(var_name) var_name = epee::misc_utils::get_tick_count() - var_name;
63 #define TIME_MEASURE_RESTART(var_name) var_name = epee::misc_utils::get_tick_count() - var_name;
64 #define TIME_MEASURE_FINISH(var_name) var_name = epee::misc_utils::get_tick_count() - var_name;
66 #define TIME_MEASURE_NS_START(var_name) uint64_t var_name = epee::misc_utils::get_ns_count();
67 #define TIME_MEASURE_NS_PAUSE(var_name) var_name = epee::misc_utils::get_ns_count() - var_name;
68 #define TIME_MEASURE_NS_RESTART(var_name) var_name = epee::misc_utils::get_ns_count() - var_name;
69 #define TIME_MEASURE_NS_FINISH(var_name) var_name = epee::misc_utils::get_ns_count() - var_name;
71 namespace profile_tools
93 m_call_time = boost::posix_time::microsec_clock::local_time();
101 boost::posix_time::ptime now_t(boost::posix_time::microsec_clock::local_time());
102 boost::posix_time::time_duration delta_microsec = now_t - m_call_time;
103 uint64_t miliseconds_used = delta_microsec.total_microseconds();
112 boost::posix_time::ptime m_call_time;
unsigned __int64 uint64_t