Prefetching
Prefetching is een optimalisatietechniek die gegevens ophaalt en in het geheugen laadt voordat die gegevens daadwerkelijk worden opgevraagd. Wanneer dit goed werkt, verbetert prefetching de prestaties en vermindert het de latentie, omdat een toepassing gegevens niet van een tragere opslagschijf hoeft te lezen, maar in plaats daarvan toegang heeft tot een snellere geheugencache cache. Hiervoor moet het systeem echter nauwkeurig voorspellen welke gegevens een toepassing of proces vooraf nodig heeft. Prefetching kan leiden tot verspilling van bronnen als het systeem onjuiste voorspellingen doet.
Om te voorspellen welke gegevens het vooraf moet ophalen, analyseert een computersysteem gebruikspatronen om te zien hoe gebruikers en toepassingen doorgaans gegevens opvragen. Het systeem kan eenvoudige patroonherkenningsalgoritmen of geavanceerde machine learning gebruiken om toekomstig gedrag te voorspellen. De meeste besturingssystemen gebruiken deze informatie om het starten van toepassingen te versnellen door de gegevens te laden die deze apps nodig hebben; deze functie heet SuperFetch in Windows en Application Launch Services in macOS. Mobiele besturingssystemen zoals Android en iOS gebruiken ook prefetching om het starten van apps te versnellen.
Software-toepassingen en hardwareapparaten kunnen beide ingebouwde prefetchfuncties bevatten. CPU's gebruiken vaak prefetching om de volgende reeks uitvoerinstructies in de cache te laden. GPU's halen textuurafbeeldingen vooraf op naar VRAM als het systeem verwacht dat ze nodig zijn om komende frames te renderen. Databasesystemen halen vaak gegevens vooraf op die een query mogelijk nodig heeft voordat die query wordt uitgevoerd. Webbrowsers kunnen zelfs gegevens vooraf ophalen van andere webpagina's waarnaar vanaf de huidige pagina wordt gelinkt, waaronder scripts, afbeeldingen, audio en video, zodat de volgende pagina sneller wordt geladen wanneer je op een link klikt.
Test je kennis