00001 #ifndef CODE_SPOT_CO_ZA_PROFILE_H_
00002 #define CODE_SPOT_CO_ZA_PROFILE_H_
00003
00004 #include <ctime>
00005 #include <iostream>
00006
00015 #define DECLARE_CLOCK(var) \
00016 namespace codespot_co_za \
00017 { \
00018 namespace system \
00019 { \
00020 int var; \
00021 } \
00022 }
00023
00028 #define START_CLOCK(var, count) codespot_co_za::system::var = clock(); \
00029 for(unsigned int _##var##i = 0; _##var##i < (count); _##var##i++) {
00030
00036 #define STOP_CLOCK(var) \
00037 }\
00038 {\
00039 int _current_time = clock(); \
00040 std::cout << "TIME: " << (_current_time - codespot_co_za::system::var) << std::endl; \
00041 codespot_co_za::system::var = _current_time; \
00042 }
00043
00044 #define TIME(statement, var) \
00045 START_CLOCK(var) \
00046 {statement} \
00047 END_CLOCK(var)
00048
00049 #endif //CODE_SPOT_CO_ZA_PROFILE_H_