Files
compute-runtime/shared/source/utilities/time_measure_wrapper.h
kamdiedrich e072275ae6 Reorganization directory structure [3/n]
Change-Id: If3dfa3f6007f8810a6a1ae1a4f0c7da38544648d
2020-02-23 23:48:28 +01:00

28 lines
704 B
C++

/*
* Copyright (C) 2019-2020 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