Kezdőoldal » Számítástechnika » Programozás » Van olyan, hogy egy programot...

Van olyan, hogy egy programot (játékot) szándékosan belassítanak?

Figyelt kérdés

És ha igen, akkor hogyan csinálják? Direkt lassú algoritmust használnak az optimális helyett? Vagy telerakják a lassítandó részeket wait-ekkel? Egyéb hack?


A kérdés apropóját a régi játékok adják, amik túl gyorsan futnak a mai processzorokon.



2020. okt. 24. 22:25
1 2 3
 1/27 A kérdező kommentje:
Egyáltalán mitől van az, hogy egy játék túl gyorsan fut a gyors processzor miatt?
2020. okt. 24. 22:28
 2/27 anonim ***** válasza:
68%
Valahol olvastam meg hogy van olyan hogy a palya alatt hullamzik a tenger, ezt persze nem latjuk, na pl. Igy lehet novelni az eroforras igenyt
2020. okt. 24. 22:38
Hasznos számodra ez a válasz?
 3/27 anonim ***** válasza:
94%
Azokat a régi játékokat nem belassították, hanem alapból lassabb gépekre írták. Így a mai gyors processzorokon előfordul, hogy nem megfelelő a sebességük, hanem túl gyors. Általában a segédprogram amivel működtetik az ilyen régiségeket (pl. DOSBOX) szokott tartalmazni olyan opciót, amivel lasabbá teheted a futtatást.
2020. okt. 24. 22:46
Hasznos számodra ez a válasz?
 4/27 A kérdező kommentje:
#2: Ezt én is hallottam már, de szerintem a mai játékoknál már nem így oldják meg, mert manapság már hatalmas különbségek vannak a processzorokban.
2020. okt. 24. 22:47
 5/27 tabaki ***** válasza:
94%
Hát, a waiteken azért már túl vagyunk... Amíg a programnak az egyik feladattal nem kell foglalkoznia, végezheti a másikat egy másik szálon Bár nem értek hozzá, feltételezem, hogy a program működését a gép órájához igazítják, ami tényleges időt számol. Egészen régi játékokban előfordulhatott, hogy a tempót egyszerűen az akkori processzorok órajeléhez igazították. Lehet, hogy csak nem gondoltak a jövőben bekövetkező több nagyságrendnyi sebességnövekedésre, de az is, hogy akkoriban még a rendszeridő állandó lekérdezése is észrevehetően lassította volna a működést.
2020. okt. 24. 22:54
Hasznos számodra ez a válasz?
 6/27 anonim ***** válasza:
19%

A kérdés alapjában véve nem rossz, hiszen nem csak a programokban, a mobiltelefonokban követhető mindez nyomon, hanem bárhol máshol is.


Legutóbb azt hallottam, hogy egy lámpatest-összeszerelő üzemben a lámpa szoftverét úgy írták meg, hogy bizonyos üzemóra eltelte után álljon le, ez egy egyszerű RTC-vel megvalósítható. (és ez már újításnak számít, mert régebben egy áramkört rövidre zártak és a lámpatest valóban megsemmisítette magát)


Így kényszerítik az embereket az észnélküli vásárlásra... :-)

2020. okt. 24. 23:01
Hasznos számodra ez a válasz?
 7/27 anonim ***** válasza:
77%

#4

Anno a Crysist gyanúsították meg ezzel, nem tudom, mennyi alapja van, sosem néztem utána.


Nyilván hatalmas botrány lenne, ha kiderülne, hogy ilyen módon szándékosan lassítják a programokat vagy verik fel a gépigényeket. És ez olyan dolog, ami nagyon gyorsan kiderülne.


Egy számítógép komplex rendszer, ha valamit suttyomban meg akarnak oldani, hogy lassan fusson, számtalan módja van nem hatékony program írásának.

2020. okt. 24. 23:18
Hasznos számodra ez a válasz?
 8/27 anonim ***** válasza:
53%

#6: hozod a formádat, látom. :D

A lámpa szoftverét. :D Aha. :D

2020. okt. 25. 00:24
Hasznos számodra ez a válasz?
 9/27 anonim ***** válasza:
94%

A kérdés olvasásakor hirtelen egy bizonyos telefongyártó jutott eszembe, amely a "frissítéssel" jócskán belassította a régebbi telóit. De látom, a kérdés nem az ilyen jellegű galádságokra vonatkozik. ;)

Igazából nem teljesen értem a kérdésedet. Az napnál is világosabb, hogy vannak (voltak) olyan játékok, amik a későbbi, gyorsabb gépeken gyorsabban futottak. Jellemzően azok, amiket a sokáig szinte szabványnak tekintett 4,77 MHz-es gépekre írtak. Ezt egy 16 MHz-es masinán futtatva valószínűleg élvezhetetlenné vált a játék. De ez azért volt, mert a fejlesztők abból indultak ki, hogy a frekvencia adott, és nem fog változni. Ez egyébként egyáltalán nem buta vagy felelőtlen hozzáállás, sokáig az volt a megszokott, hogy egy géptípus egyetlen frekvencián üzemel, és legfeljebb a RAM, meg az egyéb hardverkonfigurációk változtak kis mértékben. Aztán amikor megjelentek a 4,77 MHz-nél gyorsabb PC-k, akkor jött a felismerés, hogy más módszerrel kéne időzíteni. De jó ideig még volt "turbo" gomb a PC-ken, amikkel vissza lehetett kapcsolni 4,77 MHz-re, pont azért, hogy ezek a régi szoftverek fussanak. Azóta pedig megszűnt az a gyakorlat, hogy a játék egy az egyben rátelepszik a procira, és fut, ahogy a csövön kifér. ;) Ezek már nem puszta üres ciklusokkal, "nop" utasításokkal, meg hasonló trükkökkel időzítenek, hanem egyszerűen nem használják azt az erőforrást, amire épp nincs szükségük. Nem pörgetik egyfolytában 100%-on a procit, hanem ha nincs szükségük rá, akkor a rendszer elveszi tőlük ezt az erőforrást. (Vagy ha úgy tetszik, a szoftver maga mond le róla.) A Windows (és minden más korszerű rendszer) pedig eseményvezérelten fut, a szoftver futása nem abból áll, hogy maximális teljesítményen pörgeti a procit, akkor is, ha épp nem csinál a játékos semmit, hanem a szoftver egyes részei jól meghatározott események hatására futnak le. Pl. az egérkattintáshoz, vagy az egyes billentyűzeteseményekhez tartozó kódrészlet akkor fog lefutni, ha a rendszer értesíti a szoftvert az adott esemény bekövetkezéséről. Addig meg a szoftver nem fogja feleslegesen a procit.

Egyébként pedig ami az optimális algoritmusokat illeti... nem kell trükközni, meg sumákolni, a legtöbb fejlesztő pusztán hanyagságból, és/vagy időkényszerből borzasztóan erőforráspazarló algoritmusokat ír.

2020. okt. 25. 00:34
Hasznos számodra ez a válasz?
 10/27 anonim ***** válasza:
91%

Ha pedig régi játékokat akarsz futtatni, akkor azoknak a megfelelő sebességéről a futtatására használt szoftver (emulátor) gondoskodik. Egy DOS szoftvert a legtöbb mai rendszeren már el sem tudnál indítani, a Windows annyira gyéren támogatja. És ha el is indul, nem csak a sebességével lesz probléma. Ezért a régi DOS játékokat inkább DOSbox segítségével szokták futtatni. Ez a szoftver remekül kalibrálható, képes emulálni azokat a régi videoszabványokat is, amik a mai rendszerekkel már nem, vagy csak nagyon gyéren kompetibilisek (MDA, CGA, sőt, némelyik a kompozit CGA-t is tudja), és pontosan szabályozható a virtuális gép sebessége. Itt sem fogja a DOSbox feleslegesen pörgetni a procit, hanem lassításkor csak minden második, harmadik, ... többedik ciklusban futtatja le az emulált rendszer egy órajelciklusát.

A Nintendo NES, és hasonló konzolok, vagy pl. a C64 számítógép esetén pedig eleve csak emulálás jöhet szóba, hiszen teljesen más architektúra, mint egy PC. Az emulátor pedig hűen fogja emulálni az eredeti sebességet. Kivéve persze, ha mást nem kérünk tőle. Mert pl. egy C64-es szoftvernél van, hogy hasznos, ha be tudjuk gyorsítani a gépet.

2020. okt. 25. 00:39
Hasznos számodra ez a válasz?
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!