num_cpus

Function get_physical

source
pub fn get_physical() -> usize
Expand description

Returns the number of physical cores of the current system.

This will always return at least 1.

§Note

Physical count is supported only on Linux, mac OS and Windows platforms. On other platforms, or if the physical count fails on supported platforms, this function returns the same as get(), which is the number of logical CPUS.

§Examples

let logical_cpus = num_cpus::get();
let physical_cpus = num_cpus::get_physical();
if logical_cpus > physical_cpus {
    println!("We have simultaneous multithreading with about {:.2} \
              logical cores to 1 physical core.", 
              (logical_cpus as f64) / (physical_cpus as f64));
} else if logical_cpus == physical_cpus {
    println!("Either we don't have simultaneous multithreading, or our \
              system doesn't support getting the number of physical CPUs.");
} else {
    println!("We have less logical CPUs than physical CPUs, maybe we only have access to \
              some of the CPUs on our system.");
}