采用boost库计算程序耗时,支持毫秒和微秒。
#include <boost/date_time/posix_time/posix_time.hpp>
#include <iostream>
class ComputeTimeCost {
public:
ComputeTimeCost() : _start(boost::posix_time::microsec_clock::local_time()) {}
~ComputeTimeCost() {}
void reset() {
_start = boost::posix_time::microsec_clock::local_time();
}
int64_t GetTimeCostByMilliSeconds() {
boost::posix_time::ptime end(boost::posix_time::microsec_clock::local_time());
boost::posix_time::time_duration cost = end - _start;
return cost.total_milliseconds();
}
int64_t GetTimeCostByMicroSeconds() {
boost::posix_time::ptime end(boost::posix_time::microsec_clock::local_time());
boost::posix_time::time_duration cost = end - _start;
return cost.total_microseconds();
}
private:
boost::posix_time::ptime _start;
};
int main(int argc, char* argv[]) {
ComputeTimeCost ctc;
ctc.reset();
for (long long index = 0; index < 100000000; ++index) {
double num = 88888888.8888;
double res = num / 2.0;
}
std::cout << "cost time = " << ctc.GetTimeCostByMilliSeconds() << "ms" << std::endl;
std::cout << "cost time = " << ctc.GetTimeCostByMicroSeconds() << "us" << std::endl;
ctc.reset();
for (long long index = 0; index < 100000000; ++index) {
long long num = 88888888;
long long res = num / 2;
}
std::cout << "cost time = " << ctc.GetTimeCostByMilliSeconds() << "ms" << std::endl;
std::cout << "cost time = " << ctc.GetTimeCostByMicroSeconds() << "us" << std::endl;
return 0;
}