classes added.
This commit is contained in:
parent
5ed7e5dc6a
commit
43c32b7af1
|
@ -1,6 +1,7 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#include "Common.h"
|
||||||
|
|
||||||
double GetCounterValue(const wchar_t * fullCounterPath)
|
double Common::GetCounterValue(const wchar_t * fullCounterPath)
|
||||||
{
|
{
|
||||||
HQUERY hquery;
|
HQUERY hquery;
|
||||||
PDH_STATUS status;
|
PDH_STATUS status;
|
||||||
|
@ -34,7 +35,7 @@ double GetCounterValue(const wchar_t * fullCounterPath)
|
||||||
return counterValue.doubleValue;
|
return counterValue.doubleValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
double GetCounterValueWithSleep(const wchar_t * fullCounterPath,int idleTime)
|
double Common::GetCounterValueWithSleep(const wchar_t * fullCounterPath,int idleTime)
|
||||||
{
|
{
|
||||||
HQUERY hquery;
|
HQUERY hquery;
|
||||||
PDH_STATUS status;
|
PDH_STATUS status;
|
||||||
|
@ -76,7 +77,7 @@ double GetCounterValueWithSleep(const wchar_t * fullCounterPath,int idleTime)
|
||||||
return counterValue.doubleValue;
|
return counterValue.doubleValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
list<wstring> GetInstanceName(const wchar_t * objectName)
|
list<wstring> Common::GetInstanceName(const wchar_t * objectName)
|
||||||
{
|
{
|
||||||
list<wstring> ret;
|
list<wstring> ret;
|
||||||
wchar_t * counterListBuffer = NULL;
|
wchar_t * counterListBuffer = NULL;
|
||||||
|
@ -112,7 +113,7 @@ list<wstring> GetInstanceName(const wchar_t * objectName)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
list<wstring> GetCounterList(const wchar_t * objectName)
|
list<wstring> Common::GetCounterList(const wchar_t * objectName)
|
||||||
{
|
{
|
||||||
list<wstring> ret;
|
list<wstring> ret;
|
||||||
wchar_t * counterListBuffer = NULL;
|
wchar_t * counterListBuffer = NULL;
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
double GetCounterValue(const wchar_t * fullCounterPath);
|
class Common
|
||||||
double GetCounterValueWithSleep(const wchar_t * fullCounterPath,int sleepTime);
|
{
|
||||||
list<wstring> GetInstanceName(const wchar_t * objectName);
|
public:
|
||||||
list<wstring> GetCounterList(const wchar_t * objectName);
|
static double GetCounterValue(const wchar_t * fullCounterPath);
|
||||||
|
static double GetCounterValueWithSleep(const wchar_t * fullCounterPath,int idleTime);
|
||||||
|
static list<wstring> GetInstanceName(const wchar_t * objectName);
|
||||||
|
static list<wstring> GetCounterList(const wchar_t * objectName);
|
||||||
|
};
|
|
@ -414,6 +414,7 @@
|
||||||
<ClInclude Include="Common.h" />
|
<ClInclude Include="Common.h" />
|
||||||
<ClInclude Include="Monitor.h" />
|
<ClInclude Include="Monitor.h" />
|
||||||
<ClInclude Include="MonitorApi.h" />
|
<ClInclude Include="MonitorApi.h" />
|
||||||
|
<ClInclude Include="Processor.h" />
|
||||||
<ClInclude Include="ProcessorInformation.h" />
|
<ClInclude Include="ProcessorInformation.h" />
|
||||||
<ClInclude Include="stdafx.h" />
|
<ClInclude Include="stdafx.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -457,6 +458,7 @@
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-x86|x64'">
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-x86|x64'">
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="Processor.cpp" />
|
||||||
<ClCompile Include="ProcessorInformation.cpp" />
|
<ClCompile Include="ProcessorInformation.cpp" />
|
||||||
<ClCompile Include="stdafx.cpp">
|
<ClCompile Include="stdafx.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
|
|
@ -30,6 +30,9 @@
|
||||||
<ClInclude Include="MonitorApi.h">
|
<ClInclude Include="MonitorApi.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="Processor.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="stdafx.cpp">
|
<ClCompile Include="stdafx.cpp">
|
||||||
|
@ -44,5 +47,8 @@
|
||||||
<ClCompile Include="ProcessorInformation.cpp">
|
<ClCompile Include="ProcessorInformation.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="Processor.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -10,7 +10,17 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
// Processor Information
|
class MONITOR_API Processor
|
||||||
MONITOR_API list<wstring> GetProcessorInformationInstances();
|
{
|
||||||
MONITOR_API list<wstring> GetProcessorInformationCounterList();
|
public:
|
||||||
MONITOR_API double GetProcessorTimePercent(wchar_t * instanceName, int sleepTime);
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
};
|
||||||
|
|
||||||
|
class MONITOR_API ProcessorInformation
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
static double GetProcessorTimePercent(wchar_t * instanceName, int idleTime);
|
||||||
|
};
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include "stdafx.h"
|
||||||
|
#include "Monitor.h"
|
||||||
|
#include "Common.h"
|
||||||
|
#include "Processor.h"
|
||||||
|
|
||||||
|
list<wstring> Processor::GetInstances()
|
||||||
|
{
|
||||||
|
return Common::GetInstanceName(L"Processor");
|
||||||
|
}
|
||||||
|
|
||||||
|
list<wstring> Processor::GetCounterList()
|
||||||
|
{
|
||||||
|
return Common::GetCounterList(L"Processor");
|
||||||
|
}
|
||||||
|
|
||||||
|
// % Processor Time
|
||||||
|
|
||||||
|
// % User Time
|
||||||
|
// % Privileged Time
|
||||||
|
// Interrupts/sec
|
||||||
|
// % DPC Time
|
||||||
|
// % Interrupt Time
|
||||||
|
// DPCs Queued/sec
|
||||||
|
// DPC Rate
|
||||||
|
// % Idle Time
|
||||||
|
// % C1 Time
|
||||||
|
// % C2 Time
|
||||||
|
// % C3 Time
|
||||||
|
// C1 Transitions/sec
|
||||||
|
// C2 Transitions/sec
|
||||||
|
// C3 Transitions/sec
|
|
@ -0,0 +1,12 @@
|
||||||
|
#pragma once
|
||||||
|
#include "Monitor.h"
|
||||||
|
#include <list>
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class MONITOR_API Processor
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
};
|
|
@ -1,23 +1,52 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "Monitor.h"
|
#include "Monitor.h"
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
|
#include "ProcessorInformation.h"
|
||||||
|
|
||||||
MONITOR_API list<wstring> GetProcessorInformationInstances()
|
list<wstring> ProcessorInformation::GetInstances()
|
||||||
{
|
{
|
||||||
return GetInstanceName(L"Processor Information");
|
return Common::GetInstanceName(L"Processor Information");
|
||||||
}
|
}
|
||||||
|
|
||||||
MONITOR_API list<wstring> GetProcessorInformationCounterList()
|
list<wstring> ProcessorInformation::GetCounterList()
|
||||||
{
|
{
|
||||||
return GetCounterList(L"Processor Information");
|
return Common::GetCounterList(L"Processor Information");
|
||||||
}
|
}
|
||||||
|
|
||||||
MONITOR_API double GetProcessorTimePercent(wchar_t * instanceName, int sleepTime)
|
// Performance Limit Flags
|
||||||
|
// % Performance Limit
|
||||||
|
// % Privileged Utility
|
||||||
|
// % Processor Utility
|
||||||
|
// % Processor Performance
|
||||||
|
// Idle Break Events/sec
|
||||||
|
// Average Idle Time
|
||||||
|
// Clock Interrupts/sec
|
||||||
|
// Processor State Flags
|
||||||
|
// % of Maximum Frequency
|
||||||
|
// Processor Frequency
|
||||||
|
// Parking Status
|
||||||
|
// % Priority Time
|
||||||
|
// C3 Transitions/sec
|
||||||
|
// C2 Transitions/sec
|
||||||
|
// C1 Transitions/sec
|
||||||
|
// % C3 Time
|
||||||
|
// % C2 Time
|
||||||
|
// % C1 Time
|
||||||
|
// % Idle Time
|
||||||
|
// DPC Rate
|
||||||
|
// DPCs Queued/sec
|
||||||
|
// % Interrupt Time
|
||||||
|
// % DPC Time
|
||||||
|
// Interrupts/sec
|
||||||
|
// % Privileged Time
|
||||||
|
// % User Time
|
||||||
|
|
||||||
|
double ProcessorInformation::GetProcessorTimePercent(wchar_t * instanceName, int idleTime)
|
||||||
{
|
{
|
||||||
wstring fullCounterPath(L"");
|
wstring fullCounterPath(L"");
|
||||||
fullCounterPath+=L"\\Processor Information(";
|
fullCounterPath+=L"\\Processor Information(";
|
||||||
fullCounterPath+=instanceName;
|
fullCounterPath+=instanceName;
|
||||||
fullCounterPath+=L")\\% Processor Time";
|
fullCounterPath+=L")\\% Processor Time";
|
||||||
double ret=GetCounterValueWithSleep(fullCounterPath.c_str(),sleepTime);
|
double ret=Common::GetCounterValueWithSleep(fullCounterPath.c_str(),idleTime);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
|
@ -4,6 +4,10 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
MONITOR_API list<wstring> GetProcessorInformationInstances();
|
class MONITOR_API ProcessorInformation
|
||||||
MONITOR_API list<wstring> GetProcessorInformationCounterList();
|
{
|
||||||
MONITOR_API double GetProcessorTimePercent(wchar_t * instanceName, int sleepTime);
|
public:
|
||||||
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
static double GetProcessorTimePercent(wchar_t * instanceName, int idleTime);
|
||||||
|
};
|
|
@ -10,7 +10,17 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
// Processor Information
|
class MONITOR_API Processor
|
||||||
MONITOR_API list<wstring> GetProcessorInformationInstances();
|
{
|
||||||
MONITOR_API list<wstring> GetProcessorInformationCounterList();
|
public:
|
||||||
MONITOR_API double GetProcessorTimePercent(wchar_t * instanceName, int sleepTime);
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
};
|
||||||
|
|
||||||
|
class MONITOR_API ProcessorInformation
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
static double GetProcessorTimePercent(wchar_t * instanceName, int idleTime);
|
||||||
|
};
|
|
@ -4,5 +4,5 @@
|
||||||
JNIEXPORT jdouble JNICALL Java_org_bench4q_monitor_probe_windows_WindowsCpuProbe_getCpuUsage
|
JNIEXPORT jdouble JNICALL Java_org_bench4q_monitor_probe_windows_WindowsCpuProbe_getCpuUsage
|
||||||
(JNIEnv * environment, jobject object)
|
(JNIEnv * environment, jobject object)
|
||||||
{
|
{
|
||||||
return GetProcessorTimePercent(L"_Total",1500);
|
return ProcessorInformation::GetProcessorTimePercent(L"_Total",1500);
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#pragma comment(lib,"../x64/Release/Monitor.lib")
|
#pragma comment(lib,"../x64/Debug/Monitor.lib")
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
|
@ -10,7 +10,17 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
// Processor Information
|
class MONITOR_API Processor
|
||||||
MONITOR_API list<wstring> GetProcessorInformationInstances();
|
{
|
||||||
MONITOR_API list<wstring> GetProcessorInformationCounterList();
|
public:
|
||||||
MONITOR_API double GetProcessorTimePercent(wchar_t * instanceName, int sleepTime);
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
};
|
||||||
|
|
||||||
|
class MONITOR_API ProcessorInformation
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static list<wstring> GetInstances();
|
||||||
|
static list<wstring> GetCounterList();
|
||||||
|
static double GetProcessorTimePercent(wchar_t * instanceName, int idleTime);
|
||||||
|
};
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
int _tmain(int argc, _TCHAR* argv[])
|
int _tmain(int argc, _TCHAR* argv[])
|
||||||
{
|
{
|
||||||
list<wstring> instances=GetProcessorInformationInstances();
|
list<wstring> instances=Processor::GetInstances();
|
||||||
list<wstring> counterList=GetProcessorInformationCounterList();
|
list<wstring> counterList=Processor::GetCounterList();
|
||||||
list<wstring>::iterator iter;
|
list<wstring>::iterator iter;
|
||||||
for(iter=instances.begin();iter!=instances.end();iter++)
|
for(iter=instances.begin();iter!=instances.end();iter++)
|
||||||
{
|
{
|
||||||
|
@ -16,7 +16,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
printf("%lf\n",GetProcessorTimePercent(L"_Total",1500));
|
printf("%lf\n",ProcessorInformation::GetProcessorTimePercent(L"_Total",1500));
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#pragma comment(lib,"../x64/Release/Monitor.lib")
|
#pragma comment(lib,"../x64/Debug/Monitor.lib")
|
||||||
|
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
Loading…
Reference in New Issue