Halloj, en sak jag funderat på en stund är "Minnesanvändning" i taskmanager. Skall försöka förklara men minnesanvändning är klurigt."Minnesanvändning" av program.
Jag antar att man ska hålla nere det så mycket det går, mitt ena program ligger på ca 7000Kb.
Vad påverkar till ökad minnesanvändning o hur kan ja få ner det?
/BSv: "Minnesanvändning" av program.
Först det finns två olika sortes minne: Fysiskt och allokerat.
Allokerat minne är den mängd minne som varje program har efterfrågat men det är inte alls säkert att det använder något fysiskt minne.
Ett exempel är dll:er. Varje program som använder en dll måste allokera minne för den men om flera program använder samma dll så finns den bara en gång i minnet. Detta innebär att om 10 program använder en 1MB stor dll kommer programmen totalt att allokera 10Mb men högst 1MB fysiskt minne används.
På liknande sätt fungerar det med programmet själv. Hela programmet måste allokeras men om bara en liten del av programmet används kommer övriga delar inte att använda något fysiskt minne.
Windows håller hela tiden koll på hur mycket fysiskt minne ett program använder och fösöker att se till att varje program får så mycket det behöver men inte mer.
Det finns inget bra sätt att se hur mycket fysiskt minne ett program använder eftersom det varierar med hur övriga systemet är belastat. Många program använder också garbage collect vilket innebär att de inte returnerar minnet till windows när det är klart utan det sker vid någon senare odefinierad tidpunkt. I det fallet kommer taskmamanger inte att visa hur mycket minne programmet har allokerat just nu utan hur mycket det har allokerat totalt sedan det startades (eller sedan senaste städningen).
Kontentan är väl att man inte skall bekymra sig över minnesanvändningen som den visas i taskmanager. Om du ser till att ditt programm inte allokerar mer minne än det behöver och returnerar det när det inte behövs längre så är det ok.
Vissa program (typ spel och databaser) har lite speciella krav när det gäller minneshantering som inte stämmer överrens med hur windows optimerar minnet. Dessa program brukar därför allokera så mycket minne de behöver redan från början och sen använda egna algoritmer för att avgöra hur det skall användas.