Wat is de relatie tussen CPU-gebruik en RAM-geheugen?
Ik heb vaak gezien dat het CPU-gebruik 100% is en dat slechts 50% van het RAM-geheugen in gebruik is. Wat is de relatie tussen deze twee? Hoe beïnvloedt de ene de prestaties van de andere?
Ik heb vaak gezien dat het CPU-gebruik 100% is en dat slechts 50% van het RAM-geheugen in gebruik is. Wat is de relatie tussen deze twee? Hoe beïnvloedt de ene de prestaties van de andere?
De CPU verwerkt (voert instructies uit op dingen, zoals optellen) dingen in het geheugen. RAM is slechts een deel van de geheugenpiramide (zie hieronder). Dus als je veel gegevens verwerkt, worden die gegevens (of misschien grote delen ervan) waarschijnlijk in RAM geladen zodat ze klaar zijn voor de cpu, dit is om dingen te versnellen omdat RAM sneller te benaderen is dan opslagapparatuur. Dus CPU gebruik en RAM gebruik kunnen vaak correleren, maar dat hoeft niet.
Een basisvoorbeeld zou een beeldbewerkingsprogramma kunnen zijn. Ik laad mijn 20MB jpeg, het programma leest de hele afbeelding, en het OS houdt dat in RAM voor je (al het werk geheugen ziet er hetzelfde uit voor het programma, het OS beslist of het naar de pagina/swap file op schijf gaat of naar RAM). Dus het beeld staat in RAM te wachten om verwerkt te worden, maar ik ga eerst koffie drinken voordat ik het programma vertel om een of ander dom filter toe te passen, dus de CPU doet niets: hoog RAM laag CPU.
Ik kom terug, pas het filter toe om wat bubbels aan de afbeelding toe te voegen, en de CPU gaat naar 100% en er wordt nog meer geheugen gebruikt omdat het de voorbewerkte afbeelding in het geheugen houdt, zodat ik de wijziging die ik net heb gemaakt ongedaan kan maken. Veel RAM, veel CPU.
Als het programma klaar is met het toevoegen van de bubbels, daalt de CPU, maar misschien niet het geheugen.
Natuurlijk is het niet zo simpel :-)
RAM wordt gebruikt om gegevens op te slaan. CPU-tijd wordt gebruikt om gegevens te verwerken.
Er is geen verband tussen CPU- en geheugengebruik. Een proces kan alle CPU’s van een systeem bezetten, maar slechts een minimale hoeveelheid geheugen gebruiken. Ook kan een proces al het beschikbare geheugen op een systeem gebruiken, maar slechts een minimale hoeveelheid CPU-tijd. Er is dus geen verband tussen beide.
Er is geen consistente relatie tussen de twee. CPU-gebruik hangt af van de hoeveelheid verwerking of werk die door de app moet worden gedaan. RAM is hoeveel ruimte/geheugen er nodig is om de app te houden terwijl hij draait.
Meer RAM = je kunt meer apps tegelijk draaien
Meer CPU = je kunt complexere berekeningen/operaties uitvoeren
Hoop dat dat helpt.
Geen verband. Zie het als het kraken van zware getallen. RAM is hoeveel van die getallen kunnen worden opgeslagen om ze sneller te kunnen terugvinden, terwijl CPU is hoe snel die getallen wiskundige bewerkingen kunnen ondergaan.
Voor hoe de een de ander beïnvloedt, laten we aannemen dat je een langzame CPU hebt, maar veel RAM. Dat betekent dat je heel wat van die getallen in het geheugen kunt opslaan - ongeveer een half miljard op een typische 32 bit machine. Maar het verwerken/berekenen/etc van die getallen zal langzamer gaan.
Aan de andere kant, als je een snelle CPU hebt maar een kleine hoeveelheid RAM, zal het verwerken van de getallen snel gaan, maar van tijd tot tijd zal de machine ze van schijf moeten halen (en weer terugzetten om plaats te maken voor meer), wat vele malen langzamer is dan ze uit RAM te halen.
Dus eigenlijk heeft elk effect op de ander, en voor de beste prestaties moet het allebei goed zijn. Dit hangt echter volledig af van wat elke applicatie eigenlijk doet, en er zijn andere factoren (zoals schijfsnelheid, processor caches, etc) waar we nu niet al te diep op in hoeven te gaan, maar waarvan je je bewust moet zijn dat ze de zaken compliceren.