Hirdetés

Új hozzászólás Aktív témák

  • OddMan

    őstag

    válasz Miracle #720 üzenetére

    No most már jól működik. Nem a legszebb, de ahhoz elég, hogy lássam a 2x16-os LCD kijelzőmön a proci kihasználtságot.

    //*****************************************************************************
    // Get CPU Usage
    //*****************************************************************************
    void Monitor::GetCPUUsage(void)
    {
    union
    {
    DWORD64 part64;
    FILETIME ft;
    }idleTime;

    union
    {
    DWORD64 part64;
    FILETIME ft;
    }idleTimelast;

    union
    {
    DWORD64 part64;
    FILETIME ft;
    }kernelTime;

    union
    {
    DWORD64 part64;
    FILETIME ft;
    }kernelTimelast;

    union
    {
    DWORD64 part64;
    FILETIME ft;
    }userTime;

    union
    {
    DWORD64 part64;
    FILETIME ft;
    }userTimelast;

    DWORD64 systime;


    GetSystemTimes(&idleTimelast.ft, &kernelTimelast.ft, &userTimelast.ft);
    Sleep(TIMEOUT); // 1 sec-et várunk
    GetSystemTimes(&idleTime.ft, &kernelTime.ft, &userTime.ft);

    /* little calc */
    idleTime.part64 -= idleTimelast.part64;
    kernelTime.part64 -= kernelTimelast.part64;
    userTime.part64 -= userTimelast.part64;

    systime = kernelTime.part64 + userTime.part64;
    cpuusage = (USHORT)((systime - idleTime.part64) / (systime / 100));
    }

    Csak XP SP1 és 2003 Server alatt müxik.

    [Szerkesztve]

    ''A szíved szabad! Légy bátor és kövesd!''

Új hozzászólás Aktív témák