Keresés

Új hozzászólás Aktív témák

  • Robitrix

    senior tag

    válasz bitblueduck #23 üzenetére

    Ennek az lehet az oka, hogy egy játékprogram kódja és adatmennyisége meglehetősen nagy. más felöl meg egy jéték program kódja meglehetősen össze-vissza olyan értelemben, hogy nagyon sok benne a véletlen és eseményvezérelt rész. Például annak függvényében, hogy játék közben hogy dönt a játékos. balra megy jobbra megy, felmászik valamire, vagy tűzet nyit egy ellenségre vagy inkább elmenekül. stb. Ami a gyakorlatban azt jelenti, hogy a játék kódja igen nagy és az, hogy adott pillanatban melyik ága aktiválódik a játékban vagy éppen milyen adatokat kell betölteni a háttérből meglehetősen hullámzó. Ezzel szemben egy felhasználó program legyen mondjuk egy számlázó raktár kezelő program sokkal kisebb kilengéseket mutat a program kód és az adatok kezelésének tekintetében. Nem kell tolnától baranyáig ugrálni a rutinok és a adatok közt. Persze minnél nagyobb a cache mérete annál kisebb a valószínűsége, hogy egy keresett adat vagy programkód nincsen benne aktuálisan a gyorsító tárban. Amikor adatot tölt a hardver a gyorsító tárba, akkor snem csak a konkrét adatot és programkódot rakja be a RAMból, amit éppen használ, hanem komplexen betölti az aktuális adat és programkód környezetét. Abból a mgfontolásból, hogy a legközelebb szükséges adat vagy program utasítás az elöző környezetéből kerül ki az esetek döntő részében. Ha valakinek a személyi adatait dolgozom éppen fel egy munkaügyi rendszerben, akkor nem egy másik adatbázisból kellenek az illető macskájának a neve. Ha éppen valakinek a születési helyét olvasom ki egy memória változóból, akkor nagy eséllyel ott lesz valahol mellette a születési ideje is. Ezért van az, hogy a nagyobb cache azért egy "káoszos" játékprogram esetén gyorsít inkább, mint egy rendezett algoritmust követő számlázó programnál. Ráadásul mondjuk egy számlázó program esetén nem igen van mit szétszedni program szálakra. Nehéz olyan számlázó programot irni, ami egyszerre 8 program magot használ, mert annyi benne a egyidőben futó folyamat. Egy számlázó program tökéletesen elfutna egyetlen magon is. Egy játékprogram esetében meg akár 4-6-8 van amikor már 10(CP 2077 csutkára nyomott 4K grafika minden efekttel) párhuzamos folyamat is számolódik egy időben.

Új hozzászólás Aktív témák