Hvordan finder man ud af hvor meget fysisk RAM der er i en maskine i windows? Følgende kode returnerer total fysisk ram i antal bytes, men dette antal er ikke lige præcis 256, som det vel burde være. Hvorfor ikke?
Ja, du har sikkert ret. Producenten har snydt mig for 2036 KB. Producenten skærer simpelthen 2036 KB af RAM-klodserne og laver et helt modul hver gang de har samlet 256 MB...
Du er skarp... Prøver? Lykkedes det da ikke? Jeg forestiller mig at der har noget at gøre med at de indsatte ramklodser, bliver adresseret fra adresse 0x00000000. Grunden til at der er noget, som forsvinder er derfor at der i starten af hukommelsen er noget reserveret hukommelse. F.eks. VGA-bios o.lign. Der er vel også noget konventionel hukommelse på board'et i forvejen, men det bliver vist ikke lagt til de ramklodser man selv sætter i. Men der er kun et skud.
Ja, jeg får også forskellige differencer på forskellige maskiner. Og hvis der bare var en nogenlunde fast diff, f.eks. under 1 MB, kunne jeg bare runde op, men det varierer meget. Min midlertidige løsning går ud på at runde op til nærmeste 4 MB, og det virker fint, jeg savner bare en forklaring på hvorfor der "mangler" nogle bytes.
Jeg mener ogsaa at det sker under Linux og andre... udfra at jeg paa min FreeBSD boks mangler ca. .8MB vil jeg tro at det er stoerrelsen af min kernel :)
Det er nok snarere fordi hardwaren og BIOS napper noget af den (fysiske) hukommelse på 256 MB, bl.a. til at gemme BIOS, Video ROM mirroring m.v. Typisk kan du stille på hvilke ting der replikeres til RAM inden i BIOS'en.
Derudover vil jeg tror at Windows reservere noget hukommelse til sine egne ting og sager, ligesom DOS gjorde det - denne del af hukommelsen er derfor ikke tilgængelig for dit program. Endelig så kan din BIOS i fbm. memory checket når du tænder for din maskine, fejlmarkere dele af din RAM, hvis paritetscheckene ikke er OK. (Ligesom der kan være bad sectors/cluster på din HDD, som du heller ikke der har de 40GB du har betalt for, men "kun" 39,????GB.)
så virker det bare misvisende at der i dokumentationen skrives: dwTotalPhys Indicates the total number of bytes of physical memory.
jeg læser det som "det totale antal bytes som den fysiske hukommelse har". Den fysiske hukommelse må da være "ram-klodserne"..!?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.