相关疑难解决方法(0)

找出CPU时钟频率(每个核心,每个处理器)

像CPUz这样的程序非常擅长提供有关系统的深度信息(总线速度,内存时序等)

但是,是否有一种编程方式来计算每个核心(以及每个处理器,在每个CPU具有多个核心的多处理器系统中)频率,而无需处理CPU特定信息.

我正在尝试开发一种反作弊工具(用于时钟限制基准测试),它能够在基准测试期间记录系统中所有活动核心(所有处理器)的CPU时钟.

c++ cpu cpu-speed

36
推荐指数
1
解决办法
3万
查看次数

假设time_t以秒为单位是多么安全?

我经常做很多计算,通过添加秒来构建相对于其他时间对象的时间对象.该代码应该在嵌入式设备和服务器上运行.大多数文件说它time_t是一些算术类型,通常存储自纪元以来的时间.假设time_t存储了几秒钟后,它有多安全?如果我们可以假设,那么我们可以只使用加法和减法,而不是localtime,mktimedifftime.

到目前为止,我已经通过使用a来解决问题constexpr bool time_tUsesSeconds,表示假设time_t使用秒是否安全.如果它是不可移动的假设time_t是在几秒钟内,有没有办法自动初始化该常量?

time_t timeByAddingSeconds(time_t theTime, int timeIntervalSeconds) {
    if (Time_tUsesSeconds){
        return theTime + timeIntervalSeconds;
    } else {
        tm timeComponents = *localtime(&theTime);
        timeComponents.tm_sec += timeIntervalSeconds;
        return mktime(&timeComponents);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ time date time-t

7
推荐指数
1
解决办法
2万
查看次数

如何计算CPU核心的频率

我试图使用RDTSC,但似乎我的方法可能是错误的获得核心速度:

#include "stdafx.h"
#include <windows.h>
#include <process.h>
#include <iostream>

using namespace std;

struct Core
{
    int CoreNumber;
};

static void startMonitoringCoreSpeeds(void *param)
{
    Core core = *((Core *)param);
    SetThreadAffinityMask(GetCurrentThread(), 1 << core.CoreNumber);
    while (true)
    {
        DWORD64 first = __rdtsc();
        Sleep(1000);
        DWORD64 second = __rdtsc();
        cout << "Core " << core.CoreNumber << " has frequency " << ((second - first)*pow(10, -6)) << " MHz" << endl;
    }
}

int GetNumberOfProcessorCores()
{
    DWORD process, system;
    if (GetProcessAffinityMask(GetCurrentProcess(), &process, &system))
    {
        int count …
Run Code Online (Sandbox Code Playgroud)

c++ performance winapi visual-c++ rdtsc

7
推荐指数
1
解决办法
2643
查看次数

在x86内核中获取TSC速率

我有一个在Atom上运行的嵌入式Linux系统,这是一个足够新的CPU,具有不变的TSC(时间戳记计数器),内核在启动时测量其频率。我在自己的代码中使用TSC来节省时间(避免内核调用),而我的启动代码会测量TSC速率,但我只想使用内核的度量值。有什么办法可以从内核中检索到它吗?它不在/ proc / cpuinfo中。

linux-kernel tsc

5
推荐指数
2
解决办法
2094
查看次数

标签 统计

c++ ×3

cpu ×1

cpu-speed ×1

date ×1

linux-kernel ×1

performance ×1

rdtsc ×1

time ×1

time-t ×1

tsc ×1

visual-c++ ×1

winapi ×1