new
Acceps parameters in "key => value" format.
cache
If has a true value, internal cache will be enabled. Cache timeout can be controlled via "cache_timeout"
parameter.
On some platforms, some methods can take a long time to be completed (i.e.: WMI access on Windows
platform). If cache is enabled, all gathered data will be saved in an internal in-memory cache and, the
related method will serve from cache until the cache expires.
Cache only has a meaning, if you call the related method continiously (in a loop, under persistent
environments like GUI, mod_perl, PerlEx, etc.). It will not have any effect if you are calling it only
once.
cache_timeout
Must be used together with "cache" parameter. If cache is enabled, and this is not set, it will take the
default value: 10.
Timeout value is in seconds.
identify
If called in a list context; returns an AoH filled with CPU metadata. If called in a scalar context,
returns the name of the CPU (if CPU is multi-core or there are multiple CPUs, it'll also include the
number of CPUs).
Returns "undef" upon failure.
speed
Returns the CPU clock speed in MHz if successful. Returns "undef" otherwise.
count
Returns the number of CPUs (or number of total cores).
bitness
If successful, returns the bitness ( 32 or 64 ) of the CPU. Returns false otherwise.
load[,LEVEL]
Returns the CPU load percentage if successful. Returns "undef" otherwise.
The average CPU load average in the last minute. If you pass a level argument, it'll return the related
CPU load.
use Sys::Info::Constants qw( :device_cpu );
printf "CPU Load: %s\n", $cpu->load(DCPU_LOAD_LAST_01);
Load level constants:
LEVEL MEANING
----------------- -------------------------------
DCPU_LOAD_LAST_01 CPU Load in the last 1 minute
DCPU_LOAD_LAST_05 CPU Load in the last 5 minutes
DCPU_LOAD_LAST_10 CPU Load in the last 10 minutes
"LEVEL" defaults to "DCPU_LOAD_LAST_01".
Using this method under Windows is not recommended since, the "WMI" interface will possibly take at least
2 seconds to complete the request.
hyper_threadinght
Returns the number of threads if hyper threading is supported, returns false otherwise.