#include <iostream>
#include <chrono>
#include <string>
class Timer {
private:
std::chrono::time_point<std::chrono::steady_clock> start_time;
std::string timer_name;
public:
Timer(const std::string& name = "Timer") : timer_name(name) {
start_time = std::chrono::steady_clock::now();
}
~Timer() {
auto end_time = std::chrono::steady_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time);
std::cout << timer_name << " took " << duration.count() << " microseconds" << std::endl;
}
};
void some_function() {
Timer t("some_function");
// Simulate some work
for (int i = 0; i < 1000000; ++i) {
int x = i * i;
}
}
int main() {
Timer t("main");
some_function();
return 0;
}