Mistäs tämä johtuu kun otin Linux-työasemaan VirtualBoxin käyttöön niin 2 GB:n muistista käytössä 2,5% enemmän vaikka VirtualBox ei edes päällä?
(ennen 300 MiB, nyt 350 MiB)
(ennen 300 MiB, nyt 350 MiB)
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
Kirjaudu ulos ja sisään, sitten tarkasta kulutus...?
Se vakoilee sua.
Edelleenkin näyttäisi olevan suurempi muistin käyttö. Buuttansin koneen työpöydällä ja näyttää 343 Mib. Käynnistyvissä ohjelmissa ei ole ainakaan mitään mainintaa VirtualBoxista.
Linux hyödyntää käyttämätöntä muistia levyvälimuistina. Varatun muistin määrä siis kasva jatkuvasti Lopulta lähes kaikki muisti on varattuna mutta välittömästi käytettävissä mikäli joku ohjelma tarvitsee.
Olet tainnut törmätä yhteen niistä asioista, joissa Windows on linuxia parempi.
Windowsissa fyysisen muistin ja muistiavaruuden varaaminen on 2 eri asiaa, ja Windowsissa on mahdollisuus varata vaikkapa 1 gigatavu muistiavaruutta, ja aluksi vaikkapa vain 4 KiTavua RAM -muistia liittyen tuohon 1 gigatavun muistiavaruusvaraukseen.
Tämän jälkeen tilanne on siis se, että ko. 1 gigatavun kokoisesta muistiavaruudesta ensimmäiset 4 KiTavua (= 4096 tavua ) sisältää RAM -muistia, mutta loppuosa on sellaista, johon ei liity fyysisen muistin varausta, joten mikä tahansa luku- tai kirjoitusyritys ko. alueelle (siis gigatavun sisälle, mutta ensinmmäisten 4096 tavun jälkeen) aiheuttaa "Access Violation" -poikkeuksen.
Ohjelma voi milloin tahansa myöhemmin varata lisää RAM -muistia haluamansa määrän ja myös vapauttaa näitä varauksia.
Microsoft on dokumentoinut asian hyvin, ks:
VirtualAlloc function
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366887(v=vs.85).aspx
Asiaan liittyy myös:
VirtualProtect, VirtualFree.
Valitettavasti linuxissa ei ole vastaavaa toiminnallisuutta (tai jos on, se on melko uutta kehitystä, eikä aiheesta ole helppoa löytää dokumentointia, ainakaan sellaista, joka pätisi kaikkiin eri linuxin versioihin).
Eli jos siis esim. windows -ohjelma, joka käyttää em. Windows API -toiminnallisuutta pitäisi portata linuxiin, niin seuraus olisi helposti se, että siinä missä windows -ohjelma varaa 1 gigatavun verran muistiavaruutta, mutta fyysistä RAM -muistia vain tarpeen mukaan, niin vastaava linux -ohjelma joutuisi pitämään koko 1 gigatavu varattuna koko ajan tuhlaten siten muistiresursseja.