Ezeket, hogy csinálják?
honnan tudják,hogy egy 'játék,program' mennyi vga,ram szükséges?
és valahol olvastam,hogy programozással 'mindent' meglehet oldani akkor azt miért nem oldják meg,hogy egy program játék minimáli gépigényen induljon?
és az mit takar,hogy optimalizálás azt,hogy oldják meg?
1.) Kipróbálják. Meg aki fejleszt egy ideje az már nagyjából "ránézésre" meg tudja mondani
2.) A "minden"-ben az idézőjeleken sok a hangsúly, egyébként a minimális gépigényen el szoktak indulni a játékok, csak többnyire élvezhetetlenek
3.) Az optimalizálás az amolyan átprogramozás. A cél, hogy a program ugyan azt hajtsa végre, mint korábban, csak valamilyen mutatója jobb legyen: gyorsabban csinálja meg, vagy kevesebb memóriát használjon vagy épp könnyebben olvasható legyen a kód.
A rendszerigényt lemérik, minden normális engine úgy van megcsinálva, hogy folyamatosan lehessen figyelni a cpu\ram\vga használatot.
"miért nem oldják meg,hogy egy program játék minimáli gépigényen induljon?"
Mert az adott hardver adott számítási teljesítményre képes. Lehet csalni itt-ott(és persze kell is), de bizonyos feladatokra egyszerűen alkalmatlanok a régi(illetve a mai) hardverek. Úgy képzeld el, mintha egy 3dl s bögrében akarnál 1 liter kávét melegíteni. Persze egyik hardvert sem használták ki soha teljes mértékig, mindig jött az újabb, minek szöszölnének a sokkal gyengébb teljesítményű régi modellel.
Az optimalizálás meg azt jelenti, hogy javítják a teljesítményt, csalnak itt-ott, de ebből a felhasználó jó esetben nem vesz észre semmit(azon kívül, hogy sokkal gyorsabb persze).
Programot optimalizálni általában valamilyen szempontra vagy környezetre szoktak. Például ha sebességre optimalizálják, akkor gyorsabb lesz, de nagyobb memóriát zabál. Vagy ha memóriára, akkor kisebb memóriaigényű, de lassabb. Ez szinte mindig valamilyen kompromisszumot jelent.
Vagy optimalizálhatják egy környezetre, mikor egy architektúra előnyeit akarják kihasználni. Pl. egy 32 bites szoftvert optimalizálnak 64-bites környezetre. Vagy beépítenek fejlett szálkezelést és párhuzamosítási technikákat (konkurens programozás), ahogy az új procik megjelennek.
nagyon durva dolgok.
és,hogy oldják meg,hogy egy játék több magon fusson?
"hogy oldják meg,hogy egy játék több magon fusson?"
Ezt elvileg az operációs rendszer valamennyire megoldja, de ha a promram egy magra készült, akkor nem túl hatékonyan. Léteznek direkt olyan programozási nyelvek ill. nyelvi kiegészítők, amikkel segíteni lehet az op.rendszert, hogy mit lehet párhuzamosan indítani és mit nem.
A másik, hogy a grafikai műveletek eleve jól párhuzamosíthatók, mivel gyakran nagy tömegű adaton kell ugyanazokat a (pl. transzformációs) műveleteket végrehajtani, és a grafikus processzor és kártya erre van kihegyezve. (Single Instruction Multiple Data (SIMD) architektúra.)
Na most annak, hogy a grafikus gyorsítás hogy működik, semmi köze ahhoz, hogy hány magon fut a program.
Úgy oldják meg, hogy több magon fusson, hogy szétbontják a futást egymástól nagyjából függetlenül végezhető feladatokra, és azokat külön szálon indítják el, az oprendszer meg megoldja, hogy melyik szál melyik magon fusson.
"Na most annak, hogy a grafikus gyorsítás hogy működik, semmi köze ahhoz, hogy hány magon fut a program."
Tudom, ezt a párhuzamosításra írtam példakánt. :)
Meg arra is jó példa, hogy miért nem tud némelyik program "minimál" gépen futni. Ugyanis az adott feladathoz szükség van egy bizonyos architektúrára.
Olyan, mintha Kínába akarnál utazni, de csak egy triciklid van, kocka kerekekkel. Előbb-utóbb talán odaérsz, csak érdemes-e elindulni? De valószínűbb, hogy nem érsz oda. Ehelyett ráírják az odavezető út térképére, hogy "minimum requirements: automobil", hogy lássuk, elinduljunk-e egyáltalán. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!