()
return ret
Return the number of physical CPUs in the system.
Return the number of physical CPUs in the system.
Return the number of physical CPUs in the system .
def cpu_count_physical():
    """Return the number of physical CPUs in the system."""
    # From the C module we'll get an XML string similar to this:
    # http://manpages.ubuntu.com/manpages/precise/man4/smp.4freebsd.html
    # We may get None in case "sysctl kern.sched.topology_spec"
    # is not supported on this BSD version, in which case we'll mimic
    # os.cpu_count() and return None.
    ret = None
    s = cext.cpu_count_phys()
    if s is not None:
        # get rid of padding chars appended at the end of the string
        index = s.rfind("</groups>")
        if index != -1:
            s = s[:index + 9]
            root = ET.fromstring(s)
            try:
                ret = len(root.findall('group/children/group/cpu')) or None
            finally:
                # needed otherwise it will memleak
                root.clear()
    if not ret:
        # If logical CPUs are 1 it's obvious we'll have only 1
        # physical CPU.
        if cpu_count_logical() == 1:
            return 1
    return ret
def cpu_count_physical ( ) : # From the C module we'll get an XML string similar to this: # http://manpages.ubuntu.com/manpages/precise/man4/smp.4freebsd.html # We may get None in case "sysctl kern.sched.topology_spec" # is not supported on this BSD version, in which case we'll mimic # os.cpu_count() and return None. ret = None s = cext . cpu_count_phys ( ) if s is not None : # get rid of padding chars appended at the end of the string index = s . rfind ( "</groups>" ) if index != - 1 : s = s [ : index + 9 ] root = ET . fromstring ( s ) try : ret = len ( root . findall ( 'group/children/group/cpu' ) ) or None finally : # needed otherwise it will memleak root . clear ( ) if not ret : # If logical CPUs are 1 it's obvious we'll have only 1 # physical CPU. if cpu_count_logical ( ) == 1 : return 1 return ret