Hvad er cachelagrede data? Vil det medføre problemer, hvis vi rydder cachelagrede data?

Bedste svar

Tak for de (flere) A2Aer.

Cachede data er nogle data din computer / telefon / hvad der engang arbejdede meget hårdt for (indlæst over et potentielt langsomt netværk, eller skulle bruge en masse CPU på eller endda skulle læse fra disken). Det gemmes et eller andet sted hurtigere end hvad der blev brugt til at hente / oprette det først. Så hvis en fil på din disk er cachelagret, cachelagres den ikke på din disk, den cachelagres i din hukommelse. Hvis en fil fra netværket er cachelagret, kan den blive cachelagret i hukommelsen eller på din disk (eller begge dele).

Computere har mange forskellige caches. Masser . Selv ting, du måske tænker på som “hurtig” som RAM på din computer, er faktisk langsom nok til, at din CPU har en cache til RAM-værdier. Programmer har ofte flere caches til forskellige ting. Operativsystemet cachelagrer diskfiler i RAM og leverer ofte ting, der cache websider i RAM og / eller disk.

Alle cachelagrede data “skal” være noget, der kan oprettes eller hentes igen. I nogle tilfælde kan det faktisk ikke, for eksempel hvis du har et billede fra en webside cachelagret og af en eller anden grund er cachen ryddet, når du ikke har noget netværk, kan du ikke få det billede tilbage, før netværket kommer tilbage … eller websiden kan have ændret sig, i hvilket tilfælde værdien aldrig kan komme tilbage.

Nogle caches har indbyggede metoder til at forhindre dem i at blive forældede (som hvis et websted ændrer et billede hver dag, du ikke ønsker at se på billedet fra sidste måned bare fordi det er “hurtigere”). Dette er faktisk et af de sværere problemer inden for datalogi (ugyldiggørelse af cache). Der findes mange og mange politikker. Nogle almindelige er “smid gamle ting”, “spørg webstedet / filsystemet / uanset om ting er ændret” og en personlig favorit “hvem er ligeglad”.

Så “i teorien” kaster væk kan en cache ikke forårsage et problem … og kan heller ikke rette en. Bortset fra i den virkelige verden kan cache-ugyldiggørelsespolitikken være forkert, og gamle data er cache og nu uaktuelle, hvis rydning af cachen løser det (woot!). I den virkelige verden kan dataene muligvis også være “nu uaktuelle”, men kan i øjeblikket ikke hentes igen, så rydning af cachen vil udsætte et problem (boo!).

Rydning af en cache vil også få ting til at være langsommere, mens ting, der engang var i cachen, og du har brug for igen, beregnes / hentes / hvad som helst igen.

Svar

På din computer 🙂

cachen er et stykke hardware også kendt som SRAM (statisk ram). Det har ekstremt god ydelse. Dette har dog en pris. Bogstaveligt talt. En pris som i mange $$$, fordi SRAM også er ekstremt dyrt. Hvis vores computere var sammensat af helt SRAM, ville de være utroligt dyre. Som så meget, at ingen ville have råd til dem. Så vi kan se, hvorfor vi gerne vil bruge SRAM (det fungerer væsentligt bedre end DRAM eller diskplads), men hvis det er så dyrt, hvorfor skal vi bruge det? Det er upraktisk dyrt, ikke?

Ja, det er det. Imidlertid tænkte nogle smarte ingeniører på et kompromis. Hvad hvis størstedelen af ​​computerarkitekturen stadig var sammensat af DRAM og diskplads (for at gøre det overkommeligt), men for fortsat at opretholde ydeevne, der holder forbrugerne glade, hvad hvis alt, hvad vi havde brug for, var en lille lille smule SRAM for at fremskynde vores computerens ydeevne MEGET. Nøgleord: “lille sliver”

Så hvor bruges “LRU-cache”? Der er ikke rigtig en ting i sig selv kaldet “LRU-cache”. Moderne cacher, som du kan tænke på som vores små skiver af SRAM, har ikke uendelig plads til at holde data, og hvis du er en typisk forbruger, der surfer på nettet, hele tiden går fra webside til webside, platform til platform, dataene omsætningen på din computer bliver meget høj.

Så hvordan kan vi udnytte denne “lille flise” af SRAM, når vores dataomsætning har tendens til at være så høj? Hvad vi gør er, at vi beslutter, hvilke stykker data vi mest sandsynligt bruger igen, og vi prøver vores bedste for at holde disse stykker data inden for vores lille del af SRAM (vores cache), så næste gang vi har brug for at få adgang til en fælles stykke data din computer er i stand til at få adgang til disse data meget hurtigt, fordi det opbevares i den del af SRAM. Og hvordan beslutter vi nøjagtigt, hvad vi skal beholde, og hvad vi ikke skal beholde? Det er netop her, hvor konceptet med “LRU-cache” kommer ind. Der er mange forskellige cache-layout, der bruges af forskellige årsager (fuldt associerende, indstillet associerende, direkte kortlagt osv.) De har hver deres fordele / ulemper, men de mest almindelig måde, dit operativsystem beslutter, hvilke stykker data, der skal opbevares i SRAM, og hvad man skal smide, er at se på de data, der er åbnet senest. Fornuftigt, ikke? Hvis du bare klikkede på noget, og du klikkede på det dagen før det, og dagen før det og dagen før det osv … Det giver sandsynligvis mening at opbevare det stykke data i SRAM, så næste gang du klikker på det, BOOM, trækker det op med et hjerteslag. Men hvad med et websted, du klikkede på for tre måneder siden og ikke har gjort det siden?Når din dataomsætning fortsætter med at vokse, bliver dit operativsystem på et bestemt tidspunkt nødt til at bestemme, hvad det har brug for at sparke ud fra SRAM, og det vil sige dette websted, der ikke er blevet klikket på i tre måneder? Dette er det sidst anvendte stykke data i vores cache, så lad os sparke det ud.

Cachen er et stykke hardware kendt som SRAM, der har meget god ydeevne. LRU-udsættelsesalgoritmen er, hvordan dit operativsystem beslutter, hvilke stykker data der skal opbevares og bortkastes fra den dyrebare SRAM.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *