Files
compute-runtime/shared/source/utilities/time_measure_wrapper.h
Filip Hazubski 9a8125cdb0 Correct formatting
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-03-16 10:29:41 +01:00

28 lines
703 B
C++

/*
* Copyright (C) 2019-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include <chrono>
#include <iostream>
#include <utility>
namespace NEO {
class TimeMeasureWrapper {
public:
template <class O, class F, class... Args>
static decltype(auto) functionExecution(O &&obj, F &&func, Args &&...args) {
auto start = std::chrono::system_clock::now();
auto retVal = (obj.*func)(std::forward<Args>(args)...);
auto end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsedTime = end - start;
std::cout << "Elapsed time: " << elapsedTime.count() << "\n";
return retVal;
}
};
}; // namespace NEO