Tartalomjegyzék:
- Fő különbség - Gépfüggő és Gépfüggetlen Kódoptimalizálás
- Mi a gépfüggő kódoptimalizálás?
- Mi a gépfüggetlen kódoptimalizálás?
- Mi a hasonlóság a gépfüggő és a gépfüggetlen kódoptimalizálás között?
- Mi a különbség a gépfüggő és a gépfüggetlen kódoptimalizálás között?
- Összegzés - Gépfüggő és Gépfüggetlen Kódoptimalizálás
2024 Szerző: Mildred Bawerman | [email protected]. Utoljára módosítva: 2023-12-16 08:39
Fő különbség - Gépfüggő és Gépfüggetlen Kódoptimalizálás
A számítógépes programok a hardvereknek adott feladatsorokhoz adott utasítások. Ezeket a programokat többnyire magas szintű nyelveken írják, és a számítógép nem érti ezt a nyelvet. Ezért egy fordító segítségével átalakítják ezeket az utasításokat gépi kódokká vagy célkódokká. Több szakaszon megy keresztül a célkód összeállítása. A kódoptimalizálás az egyik ilyen. Két optimalizálási technika létezik, például: gépfüggő és gépfüggetlen kódoptimalizálás. A gépfüggő és a gépfüggetlen kódoptimalizálás közötti legfontosabb különbség az, hogy a gépfüggő optimalizálást az objektumkódra, míg a gépfüggetlen kódoptimalizálást a köztes kódra alkalmazzák.
TARTALOM
1. Áttekintés és kulcsfontosságú különbségek
2. Mi a gépfüggő kódoptimalizálás
3. Mi a gépfüggetlen kódoptimalizálás
4. A gépfüggetlen és a gépfüggetlen kódoptimalizálás közötti hasonlóság
5. Egymás melletti összehasonlítás - Gépfüggő és a géptől független kódoptimalizálás táblázatos formában
6. Összefoglalás
Mi a gépfüggő kódoptimalizálás?
A forráskód objektumkóddá vagy célkóddá történő átalakításakor a fordító több fázison megy keresztül. Először a forráskódot kapja a Lexical analizátor, amely tokeneket állít elő. Ezután a kimenetet a szintaxis analizátor kapja, amely megvizsgálja, hogy a létrehozott tokenek logikai sorrendben vannak-e. Ezt a kimenetet a szemantikai elemző kapja meg. Tegyük fel, hogy van egy kódrészlet p = q + r;
Itt p, q egész szám, de r úszó. A szemantikai elemző segítségével a c egész változót úszóvá alakítjuk. Ezért elvégzi a szemantikai elemzést. A szemantikus analizátor kimenete az Intermediate kódgenerátorhoz kerül. Visszaad egy köztes kódot, amely a kódoptimalizálóhoz kerül. A kódoptimalizálás az a folyamat, amely kiküszöböli a nem alapvető program utasításokat anélkül, hogy megváltoztatná a tényleges forráskód jelentését. Ez nem kötelező optimalizálás, de javíthatja a célkód futási idejét. A kódoptimalizáló kimenetét a kódgenerátor kapja meg, végül elkészül a célkód.
01. ábra: A fordító fázisai
A gépfüggő kódoptimalizálás során az optimalizálást a forráskódra alkalmazzák. Elegendő erőforrás elosztása javíthatja a program végrehajtását ebben az optimalizálásban.
Mi a gépfüggetlen kódoptimalizálás?
Ha az optimalizálás a köztes kódon történik, akkor azt gépfüggetlen kódoptimalizálásnak nevezzük. Különböző technikák léteznek a gépfüggetlen kódoptimalizálás elérésére. Ezeket a következő példák segítségével írjuk le.
Olvassa el a kódsorokat.
mert (j = 0; j <10; j ++) {
b = x + 2;
a [j] = 5 * j;
}
A fenti kód szerint b = x + 2-t minden egyes iterációban újra és újra kiszámolunk. A b kiszámítása után ez nem változik. Tehát ez a vonal az alábbiak szerint helyezhető el a hurkon kívül.
b = x + 2;
mert (j = 0; j <10; j ++)
{a [j] = 5 * j;
}
Ezt hívjuk kódmozgásnak.
Olvassa el a kódsorokat.
j = 5;
ha (j == 10) {
a = b + 20;
}
A fenti kód szerint az „if block” soha nem fog végrehajtódni, mert a j értéke soha nem lesz egyenlő 10-vel. Ez már inicializálva van az 5. értékre. Ezért ez a blokk eltávolítható. Ez a technika a holt kód megszüntetése.
Egy másik módszer az erősség csökkentése. Az olyan számtani műveletek, mint a szorzás, több memóriát, időt és CPU-ciklust igényelnek. Ezeket a drága kifejezéseket olyan olcsó kifejezésekkel lehet helyettesíteni, mint b = a * 2; vagy helyettesíthető hozzáadással, b = a + a;
Lásd az alábbi kódot.
(j = 1; j <= 5; j ++) {
érték = j * 5;
}
A szorzás helyett a kód az alábbiak szerint változtatható meg.
int temp = 5;
(j = 1; j <= 5; j ++) {
temp = temp + 5;
érték = hőmérséklet;
}
Ki lehet értékelni azokat a kifejezéseket, amelyek futás közben állandóak. Állandó hajtogatásnak hívják. Megállapíthatjuk például, hogy b [j + 1] = c [j + 1];
Ehelyett a következőképpen változtatható meg.
n = j +1;
b [n] = c [n];
A következők szerint lehetnek hurkok.
mert (j = 0; j <5; j ++) {
printf („a / n”);
}
mert (j = 0; j <5; j ++) {
printf („b / n”);
}
Az a és b nyomtatásakor mindkettő azonos számú iterációt tartalmaz. Mindkettő a következőképpen kombinálható egy ciklushoz.
mert (j = 0; j <5; j ++) {
printf („a / n”);
printf („b / n”);
}
Egy másik fontos technika a Common sub expresszió elimináció. A számítás elvégzéséhez az azonos kifejezéseket egyetlen változóval kell felváltani. Olvassa el az alacsonyabb kódot.
a = b * c + k;
d = b * c + m;
Ezt a kódot az alábbiak szerint lehet átalakítani.
temp = b * c;
a = hőmérséklet + k;
d = hőmérséklet + m;
Nem szükséges újra és újra kiszámítani a b * c értéket. A megszorzott érték tárolható egy változóban, és újra felhasználható.
Mi a hasonlóság a gépfüggő és a gépfüggetlen kódoptimalizálás között?
Mindkettő a kódoptimalizáláshoz tartozik
Mi a különbség a gépfüggő és a gépfüggetlen kódoptimalizálás között?
Különböző cikk a táblázat előtt
Gépfüggő és gépfüggetlen kódoptimalizálás |
|
Gépfüggő kódoptimalizálást alkalmaznak az objektumkódra. | Gépfüggetlen kódoptimalizálást alkalmaznak a köztes kódra. |
Bevonás a hardverbe | |
A gépfüggő optimalizálás CPU regisztereket és abszolút memória hivatkozásokat tartalmaz. | A gépfüggetlen kódoptimalizálás nem tartalmaz CPU regisztereket vagy abszolút memória hivatkozásokat. |
Összegzés - Gépfüggő és Gépfüggetlen Kódoptimalizálás
A kódoptimalizálás két optimalizálási technikából áll, nevezetesen gépfüggő és gépfüggetlen kódoptimalizálásból. A gépfüggő és a gépfüggetlen kódoptimalizálás közötti különbség az, hogy a gépfüggő optimalizálást az objektumkódra, míg a gépfüggetlen kódoptimalizálást a köztes kódra alkalmazzák.
Töltse le a Gépfüggő vs Gépfüggetlen Kódoptimalizálás PDF-verzióját
A cikk PDF-verzióját letöltheti, és offline célokra is használhatja, az idézési megjegyzés szerint. Kérjük, töltse le itt a PDF verziót. Különbség a gépfüggő és a gépfüggetlen kódoptimalizálás között
Ajánlott:
Különbség A Fázis Különbség és Az út Különbség Között
Fáziskülönbség vs útbeli különbség A fáziskülönbség és az útkülönbség az optika két nagyon fontos fogalma. Ezeket a jelenségeket a
Különbség Az Android Okostelefonok Között A Samsung Epic 4G és A HTC EVO 4G Között
Android okostelefonok A Samsung Epic 4G és a HTC EVO 4G között a Samsung Epic 4G és a HTC Evo 4G az első okostelefon, amely a 4G hálózaton fut. A küzdelemben
Különbség A Szemüveg Között Az Ingyenes 3D Telefon LG Optimus 3D és Az LG Revolution 4G Telefon Között
Szemüveges 3D telefon LG Optimus 3D vs LG Revolution 4G Phone First Szemüveges ingyenes 3D telefon LG Optimus 3D és LG Revolution 4G két csúcskategóriás telefon, sok
Különbség Az Android 4G Telefonok Között A Motorola Droid Bionic és A HTC Thunderbolt Között
Android 4G telefonok Motorola Droid Bionic vs HTC Thunderbolt A Motorola Droid Bionic és a HTC Thunderbolt az Android 4G telefonok közül kettő, amelyeket bemutattak
Különbség Az Eritrociták Között A Leukociták és A Trombociták Között
Fő különbség - Eritrociták vs leukociták vs trombociták A vérszövet különböző típusú sejtekből és komponensekből áll. Fontos elem