Hvad er en cache?

Når du anmoder om data fra enhver kilde, er der altid en vis forsinkelse. Ping til webservere måles i millisekunder, lageradgangstiden kan have latenser i mikrosekunderne, mens RAM-latensen måles i CPU clock-cyklusser. Selvfølgelig ville denne slags hastigheder have været utænkelige for blot et par årtier siden, men i nutiden er de aldrig hurtige nok. Adgangshastighed er regelmæssigt en form for flaskehals i ydeevnen. En af måderne dette kan løses på er med caching.

Caching er en proces med at gemme en midlertidig kopi af en ressource på en måde, så den kan tilgås hurtigere, end den normalt kunne være. Der er et stort udvalg af implementeringer både inden for software og hardware. Caches kan fungere som læsecaches, skrivecaches eller begge dele.

Læs caches

I en læst cache bliver data, der tidligere er blevet anmodet om, gemt i en cache for hurtigere adgang. I nogle scenarier kan cachen endda være præventivt indlæst med data, hvilket tillader den første anmodning at blive serveret fra cachen i stedet for blot efterfølgende anmodninger.

Den læsecache, som du højst sandsynligt er bekendt med, er browserens cache. Her gemmer browseren en lokal kopi af de ønskede ressourcer. Det betyder, at hvis og når websiden genindlæses eller en lignende side indlæses, der bruger meget af det samme indhold, kan dette indhold serveres fra cachen i stedet for webserveren. Dette betyder ikke kun, at websiden kan indlæses hurtigere, men det reducerer også belastningen på webserveren og reducerer mængden af ​​data, som brugeren skal downloade, hvilket kan være vigtigt på målte forbindelser.

Selve RAM fungerer også som en læsecache for data på harddisken. I dette tilfælde indlæses data for et kørende program på forhånd i RAM, så CPU'en kan få adgang til det hurtigere. Data fra RAM'en cachelagres derefter yderligere til CPU-cachen, selvom processen for dette er meget mere kompleks, da CPU-cachen måles i megabyte ikke gigabyte.

Skriv caches

En skrivecache er en cache, der kan absorbere data, der skrives til en langsommere enhed. Et almindeligt eksempel på dette ville være SLC-cachen i moderne SSD'er. Denne cache tillader ikke, at data læses hurtigere, men det er meget hurtigere at skrive til, end det er at skrive til den TLC eller QLC flash, der udgør resten af ​​SSD'en. SLC-cachen kan absorbere højhastigheds-skriveoperationer og overfører derefter disse data, så snart det kan, til TLC-flashen, som tilbyder meget bedre lagertæthed, men også er meget langsommere at skrive til. Brug af flashhukommelsen på denne måde optimerer den til både høje skrivehastigheder og høj lagertæthed.

Hybride caches

Der er mange måder at håndtere caches på, som kan give dem mulighed for at fungere som både læse- og skrivecache. Hver af disse metoder håndterer skriveoperationer forskelligt og har fordele og ulemper. De tre muligheder er omskrivning, gennemskrivning og tilbageskrivning. En omskrivningscache springer helt cachen over, når den skriver, gennemskrivningscachen skriver til cachen, men betragter kun handlingen som afsluttet, når den er blevet skrevet til lageret. Tilbageskrivningscachen skriver til cachen og betragter derefter handlingen som afsluttet, idet den stoler på, at cachen overfører den til lageret, hvis det er nødvendigt.

Omskrivning kan være nyttig, hvis du forventer en stor mængde skrivninger, da det minimerer cacheafgang. Det betyder dog, at en operation, der derefter læser nogen af ​​de skrevne data, vil opleve mindst én cache-miss første gang. Gennemskrivningscacher cacherer straks skriveoperationer, hvilket betyder, at resultatet kan serveres fra cachen, første gang der anmodes om det. For at blive betragtet som komplet, skal en skriveoperation også skrive dataene til disken, hvilket tilføjer latens. En tilbageskrivningscache har samme fordel som en gennemskrivning, der gør det muligt at betjene skrevne data straks fra cachen. Det kræver dog ikke skriveoperationer at skrive til disk for at blive betragtet som komplet. Dette reducerer skriveforsinkelsen, men medfører risiko for datatab, hvis cachen er flygtig, og den ikke afslutter at skrive dataene tilbage til lageret, før strømmen går tabt.

Hvordan fjerner man data fra cachen?

En af de begrænsende faktorer ved enhver cache er kapacitet. En stor cache tager lang tid at søge, hvilket negererer en god del af fordelen ved at bruge en cache i første omgang. Hukommelsesteknologier, der bruges til cachelagring, har også en tendens til at være dyrere end den hukommelse, de cachelagrer fra. Hvis dette ikke var tilfældet, er det sandsynligt, at det hukommelsesniveau ville have skiftet hukommelsesteknologier for at forbedre ydeevnen. Begge disse faktorer betyder, at caches har en tendens til at være relativt små, især sammenlignet med det lagermedie, de cache fra. RAM har mindre kapacitet end lager og CPU cache har mindre kapacitet end RAM. SLC-cachen har mindre kapacitet end TLC-hukommelsen.

Alt dette betyder, at det ofte er nødvendigt at cykle data ud af cachen for at frigøre plads til nye data, der skal cachelagres. Der er en række forskellige tilgange til dette. "Mindst hyppigt brugt", foretrækker at fjerne cacheposter, der har det laveste adgangstal. Dette kan være nyttigt til at forudsige, hvilke poster der vil have den mindste effekt på fremtidige cache-misser, men vil også tælle meget nyligt tilføjede poster som havende et lavt antal adgange, hvilket kan føre til cache-afgang.

"Mindst nyligt brugt" foretrækker at fjerne cacheposter, der ikke har været brugt i et stykke tid. Dette forudsætter, at de ikke bliver brugt i øjeblikket, men tager ikke højde for, om de var meget brugt for et stykke tid tilbage. "Senest brugt" foretrækker at fjerne de senest brugte cacheposter, forudsat at de er blevet brugt og ikke skal bruges igen. Den bedste tilgang er generelt en kombination af alle tre, baseret på brugsstatistikker.

Forældet information og sikkerhedsrisici

Den største risiko ved caches er, at den information, de indeholder, kan blive forældet. En cache-indgang betragtes som forældet, når de originale data er blevet opdateret, hvilket efterlader cache-indtastningen forældet. Det er vigtigt regelmæssigt at kontrollere, at den live-kopi, der vises, stadig matcher den cachelagrede kopi.

Specifikt på websteder er det også ekstremt vigtigt at identificere, hvilke data der kan og ikke kan cachelagres. For eksempel er det helt fint, at en stor uforanderlig JavaScript-fil cachelagres. Dette sparer brugeren for at downloade det hver gang, og det kan endda gavne andre brugere, der betjenes af den samme cache. Du kan dog ikke cache sessionsspecifikke data. Forestil dig, hvad der ville ske, hvis du browsede til en beskedapp, mens du var logget ind som dig selv, blot for at finde ud af, at du fik en cachelagret version af en anden brugers beskeder. Heldigvis kan webservere angive, hvilke ressourcer der kan og ikke kan cachelagres, og disse problemer er generelt velkendte, så der er få problemer som dette.

Konklusion

En cache er en del af hukommelsen, der kan gemme nogle nyligt brugte data i en lagringsmetode, der er hurtigere at få adgang til, end det ville være at fuldføre den normale dataadgangsproces igen. En cache er typisk begrænset i kapacitet, hvilket betyder, at den skal smide indgange ud, når den er fuld. Caches er generelt gennemsigtige for brugeren, hvilket betyder, at latency er den eneste indikation på, at resultatet blev serveret via en cache.


Leave a Comment

Alt om iOS 26

Alt om iOS 26

Apple har introduceret iOS 26 – en større opdatering med et helt nyt design med frostet glas, smartere oplevelser og forbedringer af velkendte apps.

De bedste bærbare computere til studerende i 2025

De bedste bærbare computere til studerende i 2025

Studerende har brug for en specifik type bærbar computer til deres studier. Den skal ikke kun være kraftig nok til at præstere godt i deres valgte fag, men også kompakt og let nok til at kunne bæres rundt hele dagen.

Sådan genvinder du adgang til harddisken, retter fejlen om ikke at kunne åbne harddisken

Sådan genvinder du adgang til harddisken, retter fejlen om ikke at kunne åbne harddisken

I denne artikel vil vi guide dig til, hvordan du genvinder adgang til din harddisk, når den fejler. Lad os følge med!

Sådan bruger du Samtalebevidsthed og Live Listen på AirPods

Sådan bruger du Samtalebevidsthed og Live Listen på AirPods

Ved første øjekast ligner AirPods alle andre ægte trådløse øretelefoner. Men alt dette ændrede sig, da et par mindre kendte funktioner blev opdaget.

Sådan tilføjer du en printer til Windows 10

Sådan tilføjer du en printer til Windows 10

Det er enkelt at tilføje en printer til Windows 10, selvom processen for kablede enheder vil være anderledes end for trådløse enheder.

Sådan kontrollerer du RAM og RAM-fejl på din computer med den højeste nøjagtighedsrate

Sådan kontrollerer du RAM og RAM-fejl på din computer med den højeste nøjagtighedsrate

Som du ved, er RAM en meget vigtig hardwaredel i en computer, der fungerer som hukommelse til at behandle data og er den faktor, der bestemmer hastigheden på en bærbar computer eller pc. I artiklen nedenfor vil WebTech360 introducere dig til nogle måder at kontrollere for RAM-fejl ved hjælp af software på Windows.

Sådan installer du en SSD på stationære og bærbare computere

Sådan installer du en SSD på stationære og bærbare computere

Har du lige købt en SSD i håbet om at opgradere din computers interne lager, men ved ikke, hvordan du installerer SSD? Læs denne artikel nu!

Canon Pixma MG5220: Scan Uden Blæk

Canon Pixma MG5220: Scan Uden Blæk

Sådan aktiveres scanning på Canon Pixma MG5220, når du er løbet tør for blæk.

10 Bedste NAS Lagringsenheder til Hjem og Professionelt Brug

10 Bedste NAS Lagringsenheder til Hjem og Professionelt Brug

Uanset om du leder efter en NAS til dit hjem eller kontor, så tjek denne liste over de bedste NAS lagringsenheder.

Hvad skal man gøre, hvis Powerbeats Pro ikke oplades i etui

Hvad skal man gøre, hvis Powerbeats Pro ikke oplades i etui

Hvis din Powerbeats Pro ikke oplades, skal du bruge en anden strømkilde og rengøre dine earbuds. Lad etuiet være åbent, mens du oplader dine earbuds.