Class WindowsCentralProcessor
java.lang.Object
oshi.hardware.common.AbstractCentralProcessor
oshi.hardware.common.platform.windows.WindowsCentralProcessor
- All Implemented Interfaces:
CentralProcessor
Common non-native logic for Windows Central Processor implementations.
-
Nested Class Summary
Nested classes/interfaces inherited from interface CentralProcessor
CentralProcessor.LogicalProcessor, CentralProcessor.PhysicalProcessor, CentralProcessor.ProcessorCache, CentralProcessor.ProcessorIdentifier, CentralProcessor.TickType -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final booleanprotected static final booleanprotected static final boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidBuilds the numaNodeProcToLogicalProcMap from the logical processor list.Gets the initial utility counters.Gets the numaNodeProcToLogicalProcMap.protected longlazilyCalculateMultiplier(long deltaBase, long deltaT) Lazily calculate the capacity tick multiplier once.protected static StringparseIdentifier(String identifier, String key) Parses identifier stringprotected long[][]processTickData(List<String> instances, List<Long> systemList, List<Long> userList, List<Long> irqList, List<Long> softIrqList, List<Long> idleList, List<Long> baseList, List<Long> systemUtility, List<Long> processorUtility, List<Long> processorUtilityBase, List<Long> initSystemList, List<Long> initUserList, List<Long> initBase, List<Long> initSystemUtility, List<Long> initProcessorUtility, List<Long> initProcessorUtilityBase) Processes raw perfmon tick data into the standard tick array format.protected abstract Map<ProcessorInformation.ProcessorUtilityTickCountProperty, List<Long>> Subclasses provide the current utility counters for re-initialization.protected voidsetInitialUtilityCounters(Map<ProcessorInformation.ProcessorUtilityTickCountProperty, List<Long>> counters) Sets the initial utility counters.Methods inherited from class AbstractCentralProcessor
createProcessorID, createProcessorID, createProcListFromDmesg, getContextSwitches, getCurrentFreq, getFeatureFlags, getInterrupts, getLogicalProcessorCount, getLogicalProcessors, getMaxFreq, getPhysicalPackageCount, getPhysicalProcessorCount, getPhysicalProcessors, getProcessorCaches, getProcessorCpuLoadBetweenTicks, getProcessorCpuLoadBetweenTicks, getProcessorCpuLoadTicks, getProcessorIdentifier, getSystemCpuLoadBetweenTicks, getSystemCpuLoadBetweenTicks, getSystemCpuLoadTicks, initProcessorCounts, orderedProcCaches, queryContextSwitches, queryCurrentFreq, queryInterrupts, queryMaxFreq, queryProcessorCpuLoadTicks, queryProcessorId, querySystemCpuLoadTicks, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface CentralProcessor
getProcessorCpuLoad, getSystemCpuLoad, getSystemLoadAverage
-
Field Details
-
USE_LEGACY_SYSTEM_COUNTERS
protected static final boolean USE_LEGACY_SYSTEM_COUNTERS -
USE_LOAD_AVERAGE
protected static final boolean USE_LOAD_AVERAGE -
USE_CPU_UTILITY
protected static final boolean USE_CPU_UTILITY
-
-
Constructor Details
-
WindowsCentralProcessor
public WindowsCentralProcessor()
-
-
Method Details
-
getNumaNodeProcToLogicalProcMap
-
getInitialUtilityCounters
protected Map<ProcessorInformation.ProcessorUtilityTickCountProperty, List<Long>> getInitialUtilityCounters()Gets the initial utility counters.- Returns:
- the initial utility counters
-
setInitialUtilityCounters
protected void setInitialUtilityCounters(Map<ProcessorInformation.ProcessorUtilityTickCountProperty, List<Long>> counters) Sets the initial utility counters.- Parameters:
counters- the counters to set
-
buildNumaNodeProcMap
Builds the numaNodeProcToLogicalProcMap from the logical processor list.- Parameters:
logProcs- the list of logical processors
-
parseIdentifier
-
lazilyCalculateMultiplier
protected long lazilyCalculateMultiplier(long deltaBase, long deltaT) Lazily calculate the capacity tick multiplier once.- Parameters:
deltaBase- The difference in base ticks.deltaT- The difference in elapsed 100NS time- Returns:
- The ratio of elapsed time to base ticks
-
queryProcessorUtilityCounters
protected abstract Map<ProcessorInformation.ProcessorUtilityTickCountProperty, List<Long>> queryProcessorUtilityCounters()Subclasses provide the current utility counters for re-initialization.- Returns:
- the current processor utility counter values
-
processTickData
protected long[][] processTickData(List<String> instances, List<Long> systemList, List<Long> userList, List<Long> irqList, List<Long> softIrqList, List<Long> idleList, List<Long> baseList, List<Long> systemUtility, List<Long> processorUtility, List<Long> processorUtilityBase, List<Long> initSystemList, List<Long> initUserList, List<Long> initBase, List<Long> initSystemUtility, List<Long> initProcessorUtility, List<Long> initProcessorUtilityBase) Processes raw perfmon tick data into the standard tick array format. Handles both legacy and utility-based approaches.- Parameters:
instances- the perfmon instance namessystemList- system (privileged) time ticksuserList- user time ticksirqList- IRQ time tickssoftIrqList- soft IRQ (DPC) time ticksidleList- idle time ticksbaseList- timestamp base (for utility mode), may be nullsystemUtility- system utility ticks, may be nullprocessorUtility- processor utility ticks, may be nullprocessorUtilityBase- processor utility base, may be nullinitSystemList- initial system ticks (for utility mode), may be nullinitUserList- initial user ticks (for utility mode), may be nullinitBase- initial base (for utility mode), may be nullinitSystemUtility- initial system utility, may be nullinitProcessorUtility- initial processor utility, may be nullinitProcessorUtilityBase- initial processor utility base, may be null- Returns:
- the processed tick array
-