Class SolarisCentralProcessor
- java.lang.Object
-
- oshi.hardware.common.AbstractCentralProcessor
-
- oshi.hardware.platform.unix.solaris.SolarisCentralProcessor
-
- All Implemented Interfaces:
CentralProcessor
@ThreadSafe final class SolarisCentralProcessor extends AbstractCentralProcessor
A CPU
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface oshi.hardware.CentralProcessor
CentralProcessor.LogicalProcessor, CentralProcessor.PhysicalProcessor, CentralProcessor.ProcessorCache, CentralProcessor.ProcessorIdentifier, CentralProcessor.TickType
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
CPU_INFO
private static java.lang.String
INFO
private static java.lang.String
KSTAT_PM_CPU
private static java.lang.String
KSTAT_SYSTEM_CPU
private static java.lang.String
PSTATE
private static java.lang.String
SYS
-
Constructor Summary
Constructors Constructor Description SolarisCentralProcessor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.String
getProcessorID(java.lang.String stepping, java.lang.String model, java.lang.String family)
Fetches the ProcessorID by encoding the stepping, model, family, and feature flags.double[]
getSystemLoadAverage(int nelem)
Returns the system load average for the number of elements specified, up to 3, representing 1, 5, and 15 minutes.protected Quartet<java.util.List<CentralProcessor.LogicalProcessor>,java.util.List<CentralProcessor.PhysicalProcessor>,java.util.List<CentralProcessor.ProcessorCache>,java.util.List<java.lang.String>>
initProcessorCounts()
Initializes logical and physical processor lists and feature flags.private static java.util.List<CentralProcessor.LogicalProcessor>
initProcessorCounts2(java.util.Map<java.lang.Integer,java.lang.Integer> numaNodeMap)
private static java.util.Map<java.lang.Integer,java.lang.Integer>
mapNumaNodes()
long
queryContextSwitches()
Get number of context switchesprivate static long
queryContextSwitches2()
long[]
queryCurrentFreq()
Get processor current frequency.private static long[]
queryCurrentFreq2(int processorCount)
long
queryInterrupts()
Get number of interruptsprivate static long
queryInterrupts2()
long
queryMaxFreq()
Get processor max frequency.private static long
queryMaxFreq2()
long[][]
queryProcessorCpuLoadTicks()
Get the processor CPU load ticksprivate static long[][]
queryProcessorCpuLoadTicks2(int processorCount)
protected CentralProcessor.ProcessorIdentifier
queryProcessorId()
Updates logical and physical processor counts and arraysprivate static CentralProcessor.ProcessorIdentifier
queryProcessorId2(boolean cpu64bit)
long[]
querySystemCpuLoadTicks()
Get the system CPU load ticks-
Methods inherited from class oshi.hardware.common.AbstractCentralProcessor
createProcessorID, createProcListFromDmesg, getContextSwitches, getCurrentFreq, getFeatureFlags, getInterrupts, getLogicalProcessorCount, getLogicalProcessors, getMaxFreq, getPhysicalPackageCount, getPhysicalProcessorCount, getPhysicalProcessors, getProcessorCaches, getProcessorCpuLoadBetweenTicks, getProcessorCpuLoadTicks, getProcessorIdentifier, getSystemCpuLoadBetweenTicks, getSystemCpuLoadTicks, orderedProcCaches, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface oshi.hardware.CentralProcessor
getProcessorCpuLoad, getSystemCpuLoad
-
-
-
-
Field Detail
-
KSTAT_SYSTEM_CPU
private static final java.lang.String KSTAT_SYSTEM_CPU
- See Also:
- Constant Field Values
-
INFO
private static final java.lang.String INFO
- See Also:
- Constant Field Values
-
SYS
private static final java.lang.String SYS
- See Also:
- Constant Field Values
-
KSTAT_PM_CPU
private static final java.lang.String KSTAT_PM_CPU
- See Also:
- Constant Field Values
-
PSTATE
private static final java.lang.String PSTATE
- See Also:
- Constant Field Values
-
CPU_INFO
private static final java.lang.String CPU_INFO
- See Also:
- Constant Field Values
-
-
Method Detail
-
queryProcessorId
protected CentralProcessor.ProcessorIdentifier queryProcessorId()
Description copied from class:AbstractCentralProcessor
Updates logical and physical processor counts and arrays- Specified by:
queryProcessorId
in classAbstractCentralProcessor
- Returns:
- An array of initialized Logical Processors
-
queryProcessorId2
private static CentralProcessor.ProcessorIdentifier queryProcessorId2(boolean cpu64bit)
-
initProcessorCounts
protected Quartet<java.util.List<CentralProcessor.LogicalProcessor>,java.util.List<CentralProcessor.PhysicalProcessor>,java.util.List<CentralProcessor.ProcessorCache>,java.util.List<java.lang.String>> initProcessorCounts()
Description copied from class:AbstractCentralProcessor
Initializes logical and physical processor lists and feature flags.- Specified by:
initProcessorCounts
in classAbstractCentralProcessor
- Returns:
- Lists of initialized Logical Processors, Physical Processors, Processor Caches, and Feature Flags.
-
initProcessorCounts2
private static java.util.List<CentralProcessor.LogicalProcessor> initProcessorCounts2(java.util.Map<java.lang.Integer,java.lang.Integer> numaNodeMap)
-
mapNumaNodes
private static java.util.Map<java.lang.Integer,java.lang.Integer> mapNumaNodes()
-
querySystemCpuLoadTicks
public long[] querySystemCpuLoadTicks()
Description copied from class:AbstractCentralProcessor
Get the system CPU load ticks- Specified by:
querySystemCpuLoadTicks
in classAbstractCentralProcessor
- Returns:
- The system CPU load ticks
-
queryCurrentFreq
public long[] queryCurrentFreq()
Description copied from class:AbstractCentralProcessor
Get processor current frequency.- Specified by:
queryCurrentFreq
in classAbstractCentralProcessor
- Returns:
- The current frequency.
-
queryCurrentFreq2
private static long[] queryCurrentFreq2(int processorCount)
-
queryMaxFreq
public long queryMaxFreq()
Description copied from class:AbstractCentralProcessor
Get processor max frequency.- Overrides:
queryMaxFreq
in classAbstractCentralProcessor
- Returns:
- The max frequency.
-
queryMaxFreq2
private static long queryMaxFreq2()
-
getSystemLoadAverage
public double[] getSystemLoadAverage(int nelem)
Description copied from interface:CentralProcessor
Returns the system load average for the number of elements specified, up to 3, representing 1, 5, and 15 minutes. The system load average is the sum of the number of runnable entities queued to the available processors and the number of runnable entities running on the available processors averaged over a period of time.This method is designed to provide a hint about the system load and may be queried frequently.
The way in which the load average is calculated is operating system specific but is typically a damped time-dependent average. Linux includes processes waiting for system resources such as disks, while macOS and Unix consider only processes waiting for CPU.
Windows does not provide a load average. Users may set the configuration property
oshi.os.windows.loadaverage
totrue
to start a daemon thread which will provide a similar metric.The load average may be unavailable on some platforms (e.g., Windows without the above configuration). If the load average is not available, a negative value is returned.
- Parameters:
nelem
- Number of elements to return.- Returns:
- an array of the system load averages for 1, 5, and 15 minutes with the size of the array specified by nelem; or negative values if not available.
-
queryProcessorCpuLoadTicks
public long[][] queryProcessorCpuLoadTicks()
Description copied from class:AbstractCentralProcessor
Get the processor CPU load ticks- Specified by:
queryProcessorCpuLoadTicks
in classAbstractCentralProcessor
- Returns:
- The processor CPU load ticks
-
queryProcessorCpuLoadTicks2
private static long[][] queryProcessorCpuLoadTicks2(int processorCount)
-
getProcessorID
private static java.lang.String getProcessorID(java.lang.String stepping, java.lang.String model, java.lang.String family)
Fetches the ProcessorID by encoding the stepping, model, family, and feature flags.- Parameters:
stepping
- The steppingmodel
- The modelfamily
- The family- Returns:
- The Processor ID string
-
queryContextSwitches
public long queryContextSwitches()
Description copied from class:AbstractCentralProcessor
Get number of context switches- Specified by:
queryContextSwitches
in classAbstractCentralProcessor
- Returns:
- The context switches
-
queryContextSwitches2
private static long queryContextSwitches2()
-
queryInterrupts
public long queryInterrupts()
Description copied from class:AbstractCentralProcessor
Get number of interrupts- Specified by:
queryInterrupts
in classAbstractCentralProcessor
- Returns:
- The interrupts
-
queryInterrupts2
private static long queryInterrupts2()
-
-