Razlika Med Strojno Neodvisno In Neodvisno Od Stroja Optimizacijo Kode

Kazalo:

Razlika Med Strojno Neodvisno In Neodvisno Od Stroja Optimizacijo Kode
Razlika Med Strojno Neodvisno In Neodvisno Od Stroja Optimizacijo Kode

Video: Razlika Med Strojno Neodvisno In Neodvisno Od Stroja Optimizacijo Kode

Video: Razlika Med Strojno Neodvisno In Neodvisno Od Stroja Optimizacijo Kode
Video: КАК БЫСТРО ОДЕТЬ БРАСЛЕТ НА РУКУ ✔ ОДНОЙ РУКОЙ! 2024, November
Anonim

Ključna razlika - optimizacija kode odvisna od stroja in neodvisna od stroja

Računalniški programi so sklopi navodil strojni opremi za izvajanje nalog. Ti programi so večinoma napisani v jezikih na visoki ravni, računalnik pa tega jezika ne razume. Zato se uporablja pretvornik za pretvorbo teh navodil v strojno kodo ali ciljno kodo. Za izgradnjo ciljne kode gre skozi več faz. Optimizacija kode je ena izmed njih. Obstajata dve tehniki optimizacije, kot sta strojno odvisna in strojno neodvisna optimizacija kode. Ključna razlika med strojno in strojno neodvisno optimizacijo kode je, da se strojna odvisna optimizacija uporablja za objektno kodo, medtem ko se za vmesno kodo uporablja neodvisna optimizacija kode.

VSEBINA

1. Pregled in ključna razlika

2. Kaj je strojno odvisna optimizacija kode

3. Kaj je strojno neodvisna optimizacija kode

4. Podobnosti med strojno neodvisno in strojno neodvisno optimizacijo kode

5. Vzporedna primerjava - Strojno odvisna od neodvisne optimizacije kode v tabelarni obliki

6. Povzetek

Kaj je strojno odvisna optimizacija kode?

Pri pretvorbi izvorne kode v objektno ali ciljno kodo prevajalnik preide skozi več faz. Najprej je izvorna koda dana Lexical analizatorju, ki proizvaja žetone. Nato izhod dobi sintaksni analizator, ki razišče, ali so generirani žetoni v logičnem vrstnem redu. Ta izhod dobi semantični analizator. Predpostavimo, da obstaja del kode kot p = q + r;

Tu so p, q cela števila, r pa float. Z uporabo semantičnega analizatorja se spremenljivka c celo število pretvori v float. Zato opravi semantično analizo. Izhod semantičnega analizatorja gre v vmesni generator kode. Vrne vmesno kodo, ki nato preide na optimizator kode. Optimizacija kode je postopek odstranjevanja nebistvenih programskih stavkov brez spreminjanja pomena dejanske izvorne kode. To ni obvezna optimizacija, lahko pa izboljša čas delovanja ciljne kode. Izhod optimizatorja kode je podan generatorju kode in na koncu je zgrajena ciljna koda.

Razlika med strojno neodvisno in neodvisno od stroja optimizacijo kode
Razlika med strojno neodvisno in neodvisno od stroja optimizacijo kode

Slika 01: Faze prevajalnika

Pri strojno odvisni optimizaciji kode se optimizacija uporabi za izvorno kodo. Dodelitev zadostne količine virov lahko izboljša izvajanje programa pri tej optimizaciji.

Kaj je neodvisna optimizacija kode?

Ko se optimizacija izvede na vmesni kodi, se imenuje strojno neodvisna optimizacija kode. Obstajajo različne tehnike za doseganje strojno neodvisne optimizacije kode. Opisani so z naslednjimi primeri.

Preberite spodnje vrstice kode.

za (j = 0; j <10; j ++) {

b = x + 2;

a [j] = 5 * j;

}

V skladu z zgornjo kodo se v vsaki ponovitvi vedno znova izračuna b = x + 2. Ko se izračuna b, se ne spremeni. Tako je to vrstico mogoče postaviti zunaj zanke, kot sledi.

b = x + 2;

za (j = 0; j <10; j ++)

{a [j] = 5 * j;

}

To se imenuje premikanje kode.

Preberite spodnje vrstice kode.

j = 5;

če (j == 10) {

a = b + 20;

}

V skladu z zgornjo kodo se "if block" ne bo nikoli izvedel, ker vrednost j ne bo nikoli enaka 10. Je že inicializirana na vrednost 5. Zato je to, če je blok mogoče odstraniti. Ta tehnika odpravlja mrtve kode.

Druga metoda je zmanjšanje moči. Aritmetične operacije, kot je množenje, zahtevajo več pomnilnika, časa in ciklov procesorja. Te drage izraze lahko nadomestimo s poceni izrazi, kot je b = a * 2; ali ga je mogoče nadomestiti z dodajanjem, b = a + a;

Glejte spodnjo kodo.

za (j = 1; j <= 5; j ++) {

vrednost = j * 5;

}

Namesto množenja lahko kodo spremenimo na naslednji način.

int temp = 5;

za (j = 1; j <= 5; j ++) {

temp = temp + 5;

vrednost = temp;

}

Možno je ovrednotiti izraze, ki so konstante med izvajanjem. Imenuje se stalno zlaganje. Lahko jih navedemo, na primer b [j + 1] = c [j + 1];

Namesto tega ga je mogoče spremeniti na naslednji način.

n = j +1;

b [n] = c [n];

Obstajajo lahko zanke, kot sledi.

za (j = 0; j <5; j ++) {

printf ("a / n");

}

za (j = 0; j <5; j ++) {

printf (“b / n”);

}

Tiskanje a in b imata enako število ponovitev. Oboje lahko združimo v eno for zanko, kot sledi.

za (j = 0; j <5; j ++) {

printf ("a / n");

printf (“b / n”);

}

Druga pomembna tehnika je odprava skupnega podraza. Za izračun je treba enake izraze nadomestiti z eno spremenljivko. Glejte spodnjo kodo.

a = b * c + k;

d = b * c + m;

To kodo lahko pretvorite na naslednji način.

temp = b * c;

a = temp + k;

d = temp + m;

Vedno znova ni treba izračunati b * c. Pomnoženo vrednost lahko shranite v spremenljivko in jo ponovno uporabite.

Kakšna je podobnost med strojno neodvisno in neodvisno od stroja optimizacijo kod?

Oba pripadata optimizaciji kode

Kakšna je razlika med strojno neodvisno in neodvisno od stroja optimizacijo kode?

Diff Article Sredina pred mizo

Strojno odvisna od strojno neodvisne optimizacije kode

Strojno odvisna optimizacija kode se uporabi za objektno kodo. Za vmesno kodo se uporablja strojno neodvisna optimizacija kode.
Sodelovanje s strojno opremo
Strojno odvisna optimizacija vključuje registre CPE in absolutne reference pomnilnika. Strojno neodvisna optimizacija kode ne vključuje registrov procesorja ali absolutnih referenc pomnilnika.

Povzetek - Optimizacija kode odvisna od stroja in neodvisna od stroja

Optimizacija kode je sestavljena iz dveh tehnik optimizacije, in sicer strojno odvisne in od stroja neodvisne optimizacije kode. Razlika med strojno in strojno neodvisno optimizacijo kode je v tem, da se strojna odvisna optimizacija uporablja za objektno kodo, medtem ko se strojno neodvisna optimizacija kode uporablja za vmesno kodo.

Prenesite PDF različico Machine Dependent vs Machine Independent Code Optimization

Lahko prenesete različico tega članka v obliki PDF in jo uporabite za uporabo brez povezave, kot je navedeno v opombi. Prosimo, prenesite različico PDF tukaj Razlika med strojno neodvisno in neodvisno od stroja optimizacijo kod

Priporočena: