Razlika Između Optimizacije Koda Ovisne O Stroju I Stroja Neovisne

Sadržaj:

Razlika Između Optimizacije Koda Ovisne O Stroju I Stroja Neovisne
Razlika Između Optimizacije Koda Ovisne O Stroju I Stroja Neovisne

Video: Razlika Između Optimizacije Koda Ovisne O Stroju I Stroja Neovisne

Video: Razlika Između Optimizacije Koda Ovisne O Stroju I Stroja Neovisne
Video: Деб Рой: Рождение слова 2024, Studeni
Anonim

Ključna razlika - Optimizacija koda ovisno o stroju i neovisnoj o stroju

Računalni programi su skupovi uputa danih hardveru za izvršavanje zadataka. Ti su programi uglavnom napisani na jezicima visoke razine, a računalo ih ne razumije. Stoga se koristi prevodilac za pretvaranje tih uputa u strojni kod ili ciljni kod. Prolazi kroz nekoliko faza za izgradnju ciljnog koda. Optimizacija koda je jedna od njih. Postoje dvije tehnike optimizacije, poput strojne i strojno neovisne optimizacije koda. Ključna razlika između optimizacije koda ovisne o stroju i stroja neovisna je u tome što se ovisno o stroju optimizacija primjenjuje na objektni kôd, dok se o međusobno neovisnoj optimizaciji koda.

SADRŽAJ

1. Pregled i ključna razlika

2. Što je strojno ovisna optimizacija koda

3. Što je strojno neovisna optimizacija koda

4. Sličnosti između strojno neovisne i strojno neovisne optimizacije koda

5. Usporedba u usporedbi - Strojna neovisna optimizacija koda u tabličnom obliku

6. Sažetak

Što je strojno ovisna optimizacija koda?

Pri pretvaranju izvornog koda u objektni ili ciljni kod, kompajler prolazi kroz nekoliko faza. Prvo se izvorni kod daje Lexical Analyzeru koji proizvodi tokene. Zatim se izlaz daje analizatoru sintakse koji istražuje jesu li generirani tokeni logičnim redoslijedom. Taj se izlaz daje semantičkom analizatoru. Pretpostavimo da postoji dio koda kao p = q + r;

Ovdje su p, q cijeli brojevi, ali r je float. Koristeći semantički analizator, c cjelobrojna varijabla pretvara se u float. Stoga vrši semantičku analizu. Izlaz semantičkog analizatora ide u posredni generator koda. Vraća srednji kôd koji zatim odlazi u optimizator koda. Optimizacija koda je postupak uklanjanja nebitnih programskih izjava bez promjene značenja stvarnog izvornog koda. Nije obvezna optimizacija, ali može poboljšati vrijeme rada ciljnog koda. Izlaz optimizatora koda daje se generatoru koda, i konačno, izgrađuje se ciljni kôd.

Razlika između optimizacije koda ovisne o stroju i stroja neovisne
Razlika između optimizacije koda ovisne o stroju i stroja neovisne

Slika 01: Faze sastavljača

U strojnom ovisnoj optimizaciji koda, optimizacija se primjenjuje na izvorni kod. Dodjela dovoljne količine resursa može poboljšati izvršavanje programa u ovoj optimizaciji.

Što je strojno neovisna optimizacija koda?

Kada se optimizacija vrši na srednjem kodu, naziva se strojno neovisna optimizacija koda. Postoje različite tehnike za postizanje strojno neovisne optimizacije koda. Opisani su pomoću sljedećih primjera.

Pročitajte donje retke koda.

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

b = x + 2;

a [j] = 5 * j;

}

Prema gornjem kodu, b = x + 2 se izračunava iznova i iznova u svakoj iteraciji. Jednom kada se izračuna b, ne mijenja se. Dakle, ovaj se redak može postaviti izvan petlje na sljedeći način.

b = x + 2;

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

{a [j] = 5 * j;

}

To se naziva kretanje koda.

Pročitajte donje retke koda.

j = 5;

ako (j == 10) {

a = b + 20;

}

Prema gornjem kodu, 'if block' se nikada neće izvršiti jer j vrijednost nikada neće biti jednaka 10. Već je inicijalizirana na vrijednost 5. Stoga se ovo ako blok može ukloniti. Ova tehnika eliminira mrtvi kod.

Druga metoda je smanjenje snage. Aritmetičke operacije poput množenja zahtijevaju više memorije, vremena i procesorskih ciklusa. Ovi skupi izrazi mogu se zamijeniti jeftinim izrazima poput b = a * 2; ili se može zamijeniti sabiranjem, b = a + a;

Pogledajte donji kod.

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

vrijednost = j * 5;

}

Umjesto množenja, kod se može promijeniti na sljedeći način.

int temp = 5;

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

temp = temp + 5;

vrijednost = temp;

}

Moguće je procijeniti izraze koji su konstante tijekom izvođenja. Naziva se stalnim preklapanjem. Može se navesti kao što je b [j + 1] = c [j + 1];

Umjesto toga, može se promijeniti na sljedeći način.

n = j +1;

b [n] = c [n];

Mogu postojati petlje kako slijedi.

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

printf ("a / n");

}

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

printf (“b / n”);

}

Ispis a i b, oba imaju jednak broj ponavljanja. Obje se mogu kombinirati u jednu for petlju kako slijedi.

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

printf ("a / n");

printf (“b / n”);

}

Druga važna tehnika je uklanjanje uobičajenog podraza. Zamjena je identičnih izraza jednom varijablom za izračun. Pogledajte donji kod.

a = b * c + k;

d = b * c + m;

Ovaj se kod može pretvoriti na sljedeći način.

temp = b * c;

a = temp + k;

d = temp + m;

Nije potrebno izračunavati b * c iznova i iznova. Pomnožena vrijednost može se pohraniti u varijablu i ponovno upotrijebiti.

Koja je sličnost između optimizacije koda ovisne o stroju i stroja neovisne?

Oboje pripada optimizaciji koda

Koja je razlika između optimizacije koda ovisne o stroju i stroja neovisne?

Diff Article Sredina prije tablice

Ovisno o stroju i Neovisna o stroju optimizacija koda

Strojna optimizacija koda primjenjuje se na objektni kôd. O internom kodu primjenjuje se strojno neovisna optimizacija koda.
Uključenost u hardver
Strojno ovisna optimizacija uključuje CPU registre i apsolutne reference memorije. Strojno neovisna optimizacija koda ne uključuje CPU registre ili apsolutne reference memorije.

Sažetak - Ovisno o stroju i Neovisna o stroju optimizacija koda

Optimizacija koda sastoji se od dvije tehnike optimizacije, naime strojno ovisne i strojno neovisne optimizacije koda. Razlika između optimizacije koda ovisne o stroju i stroja neovisna je u tome što se ovisno o stroju optimizacija primjenjuje na objektni kôd, dok se strojno neovisna optimizacija koda primjenjuje na srednji kôd.

Preuzmite PDF verziju Strojne optimizacije koda ovisne o stroju ili neovisne o stroju

Možete preuzeti PDF verziju ovog članka i koristiti je u izvanmrežne svrhe prema napomeni. Ovdje preuzmite PDF verziju. Razlika između optimizacije koda ovisne o stroju i stroja neovisne

Preporučeno: