refactored test
This commit is contained in:
parent
bbed99ba8c
commit
6136207436
4 changed files with 69 additions and 20 deletions
|
|
@ -5,7 +5,8 @@
|
|||
#define _MT
|
||||
#define _DLL
|
||||
#include <Windows.h>
|
||||
#include <libloaderapi.h>
|
||||
#include <fileapi.h>
|
||||
//#include <libloaderapi.h>
|
||||
#endif
|
||||
|
||||
#include "../debug.h"
|
||||
|
|
@ -14,11 +15,31 @@
|
|||
using namespace tmr;
|
||||
|
||||
#ifdef _WIN64
|
||||
static inline int64_t getQPCTicks() {
|
||||
LARGE_INTEGER ticks;
|
||||
if (!QueryPerformanceCounter(&ticks))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return ticks.QuadPart;
|
||||
}
|
||||
|
||||
static inline int64_t getQPCFrequency() {
|
||||
LARGE_INTEGER ticks;
|
||||
if (!QueryPerformanceFrequency(&ticks))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return ticks.QuadPart;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char** argv){
|
||||
HMODULE dell;
|
||||
DWORD fracaso;
|
||||
//HMODULE dell;
|
||||
//DWORD fracaso;
|
||||
//DllImport TSCTimer* timer;
|
||||
int sleep = 1000;
|
||||
uint64_t sleep = 1;
|
||||
uint64_t checks = 0;
|
||||
|
||||
/*
|
||||
* dell = LoadLibraryExW(TEXT("libtmrtsc.dll"), NULL, NULL);
|
||||
|
|
@ -31,13 +52,42 @@ int main(int argc, char** argv){
|
|||
timer = TSCTimer::getTimer();
|
||||
if(timer == nullptr)
|
||||
return -2;
|
||||
uint64_t t1 = timer->getTimeStamp();
|
||||
Sleep(sleep);
|
||||
uint64_t t2 = timer->getTimeStamp();
|
||||
uint64_t fr = timer->getBaseFrequency();
|
||||
std::cout << "Siestecita de: " << sleep << " ms" << std::endl;
|
||||
std::cout << "Windows Momento: \nt1: " << t1 << " t2: " << t2 << " fr: " << fr << std::endl;
|
||||
uint64_t wfr = getQPCFrequency();
|
||||
int64_t fr = timer->getBaseFrequency();
|
||||
|
||||
|
||||
uint64_t wt1 = getQPCTicks();
|
||||
int64_t t1 = timer->getTimeStamp();
|
||||
int64_t t2 = timer->getTimeStamp();
|
||||
while ((t2 - t1) < (sleep * fr)) {
|
||||
t2 = timer->getTimeStamp();
|
||||
checks++;
|
||||
}
|
||||
//uint64_t fr = timer->getBaseFrequency();
|
||||
uint64_t wt2 = getQPCTicks();
|
||||
std::cout << "Sleep: " << sleep << "s\n-----------------\nTest 1: TSCTimer within QPC\n" << std::endl;
|
||||
std::cout << " QPC Momento: \nt1: " << wt1 << " t2: " << wt2 << " fr: " << wfr << std::endl;
|
||||
std::cout << " restita: " << wt2-wt1 << std::endl;
|
||||
std::cout << " TSCTimer Momento: \nt1: " << t1 << " t2: " << t2 << " fr: " << fr << std::endl;
|
||||
std::cout << " restita: " << t2-t1 << std::endl;
|
||||
std::cout << " checks: " << checks << "\n-----------------\nTest 2: QPC within TSCTimer\n"<< std::endl;
|
||||
|
||||
checks = 0;
|
||||
t1 = timer->getTimeStamp();
|
||||
wt1 = getQPCTicks();
|
||||
wt2 = getQPCTicks();
|
||||
while ((wt2 - wt1) < (sleep * wfr)) {
|
||||
wt2 = getQPCTicks();
|
||||
checks++;
|
||||
}
|
||||
//uint64_t fr = timer->getBaseFrequency();
|
||||
t2 = timer->getTimeStamp();
|
||||
std::cout << "QPC Momento: \n t1: " << wt1 << " t2: " << wt2 << " fr: " << wfr << std::endl;
|
||||
std::cout << "restita: " << wt2-wt1 << std::endl;
|
||||
std::cout << "TSCTimer Momento: \n t1: " << t1 << " t2: " << t2 << " fr: " << fr << std::endl;
|
||||
std::cout << " restita: " << t2-t1 << std::endl;
|
||||
std::cout << " checks: " << checks << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ namespace tmr {
|
|||
|
||||
int64_t TSCTimer::intelRetrieveART(){
|
||||
//TODO: Find a valid Intel CPU to debug ART route
|
||||
//if (freq == nullptr) return -
|
||||
|
||||
uint64_t raxde, rbxnum, rcxhz;
|
||||
asm volatile ( ".intel_syntax noprefix\t\n" \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue