TotalPhysicalMemory falscher wert oder ich bin zu doof

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ren22
User
Beiträge: 9
Registriert: Mittwoch 20. Oktober 2010, 21:13

*SUFU ignoriert komischer weise den string "TotalPhysicalMemory"* sorry für den neuen thread

hey :D

ich wollte mal ein script basteln, für windows, was mir den genauen wert an physichen arbeitsspeicher im system ausgibt, aber ich bekomme anstatt den richtigen werten immer was anderes heraus .. ich habe vieles probiert aber nun steh ich auf dem schlauch xD

Code: Alles auswählen

import wmi

c = wmi.WMI()
for i in c.Win32_ComputerSystem():
    mem = int(i.TotalPhysicalMemory)
 
    print mem/1000000, "mb"

liefert mir 2682 mb zurück ...

im system steck einmal 512MB und einmal 2048MB ram riegel, sollte eigentlich 2560MB zurück liefern ...

kann mir einer wer sagen was ich falsch mache ??

danke
grüsse ren22
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Stichwort Binärpräfixe. Du musst als Faktor 2²⁰ statt 10⁶ nehmen.
ren22
User
Beiträge: 9
Registriert: Mittwoch 20. Oktober 2010, 21:13

ok danke für die schnelle antwort

Code: Alles auswählen

import wmi
c = wmi.WMI()
for i in c.Win32_ComputerSystem():
    mem = int(i.TotalPhysicalMemory)
 
    print mem/1048576, "mb"
also wenn ich was ich auch schon vorher probiert habe den faktor 2²⁰ nehme
bekomme ich 2557MB zurück ... fehlen 3MB

also irgentwas stimmt da nicht
keine ahnung was ich falsch mache .. schlag mir doch bitte mal auf den hinterkopf :D
...mein BIOS meldet auch 2560MB installed

grüsse ren22
BlackJack

@ren22: Kann es sein, dass sich die Grafikkarte die drei Megabyte nimmt? Oder vielleicht irgendeine andere Hardware die vom BIOS aus schon Speicher braucht, der dann dem Betriebssystem nicht mehr zur Verfügung steht?
http://msdn.microsoft.com/en-us/library/aa394102(VS.85).aspx hat geschrieben:Total size of physical memory. Be aware that, under some circumstances, this property may not return an accurate value for the physical memory. For example, it is not accurate if the BIOS is using some of the physical memory.
ren22
User
Beiträge: 9
Registriert: Mittwoch 20. Oktober 2010, 21:13

meines erachtens nach sollte das notebook auf dem ich das script teste "eigenen", nicht shared oder vom ram, speicher haben.

mal sehen wenn ich es heute noch hin bekomme meinen anderen pc startklar bekomme und dort mal nachschaue wie es sich da verhält.

hhm ... das is aber ziemlich unsauber wenn ich den richtigen wert wissen möchte...
was wäre die genaue verfahrenweise unter windows ? und den echten wert zurückbekommen könnte
oder gibt es eine andere möglichkeit eine "rambank" direkt oder wie auch immer auszulesen und den richtigen wert pro riegel zurückzuliefern?

danke
grüsse ren22
BlackJack

@ren22: Wozu brauchst Du die Information denn überhaupt?
Antworten