问题描述
我正在使用微秒内的QueryPerformance计数器。我编写StartCounter()函数以初始化计时器,并编写GetCounter()函数以微秒为单位获取时间。我的GetCounter()函数由不同的线程使用。我想确定我从同一个核心获得时间。我编写此代码的目的是:
#include <iostream>
#include <pthread.h>
#include <semaphore.h>
using namespace std;
double PCFreq = 0.0;
__int64 CounterStart = 0;
void StartCounter()
{
cpu_set_t mask1;
CPU_ZERO(&mask1);
CPU_SET(1,&mask1);
pthread_setaffinity_np(pthread_self(),sizeof(mask1),&mask1);
LARGE_INTEGER li;
if(!QueryPerformanceFrequency(&li))
cout << "QueryPerformanceFrequency failed!\n";
PCFreq = double(li.QuadPart)/1000000.0;
QueryPerformanceCounter(&li);
CounterStart = li.QuadPart;
}
double GetCounter(){
LARGE_INTEGER li;
QueryPerformanceCounter(&li);
return double(li.QuadPart-CounterStart)/PCFreq;
}
从同一个内核中抽出时间是真的吗?还是我也设置了亲和力GetConter()函数?我正在使用mingw编译器和Windows 7,Eclipse CDT 谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)