函数性能测试
//统一性能测试
#include <iostream>
#include<Windows.h>
using namespace std;
template<typename func>
int performance_test(func f){ //通过传入成员函数指针,进行调用,测试函数运行时间
LARGE_INTEGER frec, start, end; //WindowsAPI测试程序运行时间
QueryPerformanceFrequency(&frec);
QueryPerformanceCounter(&start);
f(); //此处调用函数
QueryPerformanceCounter(&end);
return (end.QuadPart - start.QuadPart) * 1000000000 / frec.QuadPart;
}
void show() { //假设这个是算法的函数,你需要保证函数列表为空,因为这样才能统一测试,如果不为空,那么请在算法函数外增加一层这样的函数
Sleep(100);
}
void test() {
Sleep(200);
}
int main(){
cout << performance_test(show) << endl; //传入函数对象,返回的是一个纳米级的运行时间
cout << performance_test(test) << endl; //传入函数对象,返回的是一个纳米级的运行时间
return 0;
}
截图
#include<Windows.h>
template<typename func>
int performance_test(func f){ //通过传入成员函数指针,进行调用,测试函数运行时间
LARGE_INTEGER frec, start, end; //WindowsAPI测试程序运行时间
QueryPerformanceFrequency(&frec);
QueryPerformanceCounter(&start);
f(); //此处调用函数
QueryPerformanceCounter(&end);
return (end.QuadPart - start.QuadPart) * 1000000000 / frec.QuadPart;
}