Kezdőoldal » Számítástechnika » Programozás » Egy program vagy játék sebessé...

Egy program vagy játék sebessége függ attól, hogy a fejlesztőkörnyezet milyen fordítót használ?

Figyelt kérdés
Pl MSVC vagy g++
2020. okt. 29. 16:50
1 2
 11/14 anonim ***** válasza:
Nincsenek félretájékoztatva, csak értelmezni kellene, amit írtam, azon belül is az "optimális" szó jelentését. Te megbuktál ezen a teszten és még okoskodsz is, az ilyen "szakembertől" két lábbal szokás megszabadulni egy munkahelyen. 😉
2020. okt. 30. 18:45
Hasznos számodra ez a válasz?
 12/14 A kérdező kommentje:
Ha van különbség akkor melyik javára?
2020. okt. 30. 19:19
 13/14 anonim ***** válasza:

"csak értelmezni kellene, amit írtam, azon belül is az "optimális" szó jelentését."


Értelmeztem, így derült ki, hogy dilettáns vagy.


A forráskód egy, a compiler szintjénél magasabb absztrakciós szint produktuma. Így ahhoz kb. semmi köze nincs. A compiler értelmezi és fordítja le gépi kódra a forrást. Ha igény van rá, akkor optimalizálja is. Ami annyit tesz, hogy A SAJÁT MUNKÁJÁT valósítja meg másképpen, nem pedig a forráskódba "javít" bele. Az optimalizáció történhet sebességspecifikusan, de úgy is lehet optimalizálni, hogy a program a lehető legkevesebb memóriát használja fel. Ekkor persze a viszonylagos lassúsággal "fizet" az, aki futtatni kivánja a programot.

Az optimalizálás ott kezdődik - hátha te is megérted - hogy a fordító nem a program írója, hanem a saját "hibáit" javítja ki. Ilyen "hiba" pl. az, hogy ha adott esetben egy memóriacímen lévő integerrel kell műveletet végezni, akkor az első, hogy a címről az értéket beolvassa a gép az egyik munkaregiszterébe, majd a művelet elvégzése után az eredményt kírja arra a memóriacímre, ahonnan az előbb beolvasott. Ha a következő lépés mondjuk az, hogy ugyanazzal a változóval kell végezni egy másik műveletet, akkor a kiírt értéket megint be kell olvasni a munkaregiszterbe, holott az az előbb még ott volt.

Nyilvánvaló, hogy jobb lenne az értéket a regiszterben hagyni, mivel így két adatmozgató utasítással rövidebb és persze gyorsabb is lenne a program. Na, a f"csak értelmezni kellene, amit írtam, azon belül is az "optimális" szó jelentését."


Értelmeztem, így derült ki, hogy dilettáns vagy.


A forráskód egy, a compiler szintjénél magasabb absztrakciós szint produktuma. Így ahhoz kb. semmi köze nincs.

A compiler értelmezi és fordítja le gépi kódra a forrást. Ha igény van rá, akkor optimalizálja is.

Ami annyit tesz, hogy A SAJÁT MUNKÁJÁT valósítja meg másképpen, nem pedig a forráskódba "javít" bele.

Az optimalizáció történhet sebességspecifikusan, de úgy is lehet optimalizálni, hogy a program a lehető legkevesebb memóriát használja.

Ekkor persze a viszonylagos lassúsággal "fizet" az, aki futtatni kivánja a programot.

Az optimalizálás ott kezdődik - hátha te is megérted - hogy a fordító nem a program írója, hanem a saját "hibáit" javítja ki.

Ilyen "hiba" pl. az, hogy ha adott esetben egy memóriacímen lévő integerrel kell műveletet végezni, akkor az első, hogy a címről az értéket beolvassa a gép az egyik munkaregiszterébe, majd a művelet elvégzése után az eredményt kírja a

memóriacímre, ahonnan az előbb beolvasott. Ha a következő lépés mondjuk az, hogy ugyanazzal a változóval kell végezni egy másik műveletet, akkor a kiírt értéket megint be kell olvasni a munkaregiszterbe.

Nyilvánvaló, hogy jobb lenne az értéket a regiszterben hagyni, mivel így két adatmozgató utasítással rövidebb és persze gyorsabb is lenne a program. Ha a fölösleges lépések kimaradnak, az a jó, mert ilyen fölösleges lépés, lehet egy összetettebb programban akár több ezer is. Hát ilyesmi a kód-optimalizálás, legalábbis alapfokon.

És ennek persze a világon semmi köze nincs ahhoz, hogy amatőr atanász, vagy vérprofi vendel írta a kódot, mivel a fordítót biztos, hogy nem ők írták.

2020. okt. 30. 19:23
Hasznos számodra ez a válasz?
 14/14 anonim ***** válasza:

Nem optimalizálásról beszéltem, hanem optimálisra megírt forráskódról.


Ha értelmezted volna és tisztában lennél az "optimális" szó jelentésével, akkor fejedhez csapnál, hogy az optimális programkód egy idealizált állapot, a valóságban aligha valósítható meg. Ebből aztán következik, hogy a program fordítása eredményezhet sebességbeli különbségeket. Nem feltétlenül nagyokat, lehet, hogy csak nüansznyikat. Ha csak elméletben nézzük (és a kérdés elméleti kérdés volt), akkor a válasz tehát ebből következően az, amit eredetileg leírtam, hogy optimális kód esetén nem lehet eltérés.

2020. okt. 30. 19:31
Hasznos számodra ez a válasz?
1 2

További 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!