Seite 1 von 1
Anzahl der Prozessoren rausfinden
Verfasst: Freitag 3. Februar 2006, 15:08
von Rebecca
Moin!
Unter *nix -Systemen kann ich die Anzahl der Prozessoren ueber /proc/cpuinfo rausfinden. Aber gibt es auch eine Python-Funktion dafuer? Ich habe nix gefunden... :-(
Gruss,
Rebecca
Verfasst: Freitag 3. Februar 2006, 16:01
von gerold
Hi Rebecca!
Ich glaube nicht, dass es dafür eine eigene Funktion in Python gibt. Lies einfach "/proc/cpuinfo" aus.
mfg
Gerold
Verfasst: Freitag 3. Februar 2006, 23:02
von modelnine
Code: Alles auswählen
cpus = 0
for l in file("/proc/cpuinfo"):
if not l.strip(): cpus += 1
Das sollte unter allen Linux-artigen Systemen laufen (unabhängig von der Architektur). Unter anderen Systemen ist das sicherlich auch machbar, nur kann man sich bei denen sicherlich nicht drauf verlassen dass /proc/cpuinfo genausoviele Leerzeilen enthält wie es CPUs gibt.
--- Heiko.
Verfasst: Dienstag 25. April 2006, 09:55
von Rebecca
Mmh, ich dachte immer, eine /proc/cpuinfo gibt's auf den meisten *nix-Systemen, aber sie scheint nur auf Linuxen zu existieren.
Sowas bloedes...
Verfasst: Dienstag 25. April 2006, 11:24
von modelnine
Mmh, ich dachte immer, eine /proc/cpuinfo gibt's auf den meisten *nix-Systemen, aber sie scheint nur auf Linuxen zu existieren.
Jupp. Die Spezifikation von /proc ist zwischen Systemen nicht konsistent, meißtens sogar zwischen Hauptversionen von Linux nicht (zum Beispiel kamen zwischen 2.2 und 2.4 ziemlich viele Felder in /proc/net/* dazu). Im Normalfall gibts aber was ähnliches; sonst, vielleicht liefert die entsprechende Information auch uname, die Ausgabe von dem Befehl zu parsen sollte kein Problem sein.
Verfasst: Dienstag 25. April 2006, 15:20
von mitsuhiko
Ansonsten kommt man auch mit HAL an die Infos:
Code: Alles auswählen
import dbus
bus = dbus.SystemBus()
obj = bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
manager = dbus.Interface(obj, 'org.freedesktop.Hal.Manager')
processors = manager.FindDeviceByCapability('processor')
print 'Anzahl der Prozessoren: %d' % len(processors)
Sollte auf allen Systemen mit aktuellem HAL und dbus laufen.