使用设置的相似性掩码从QueryPerformanceCounter中的同一核心获取时间

问题描述

我正在使用微秒内的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 (将#修改为@)