Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe të Pavarur nga Makina

Përmbajtje:

Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe të Pavarur nga Makina
Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe të Pavarur nga Makina

Video: Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe të Pavarur nga Makina

Video: Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe të Pavarur nga Makina
Video: Porsche Taycan Turbo dhe Turbo S - Video me informacion teknik në thellësi 2024, Korrik
Anonim

Dallimi kryesor – Optimizimi i kodit të varur nga makina dhe optimizimi i kodit të pavarur nga makina

Programet kompjuterike janë grupe udhëzimesh që i jepen harduerit, për të kryer detyra. Këto programe janë shkruar kryesisht në gjuhë të nivelit të lartë dhe kompjuteri nuk e kupton atë gjuhë. Prandaj, një përpilues përdoret për t'i kthyer ato udhëzime në kodin e makinës ose kodin e synuar. Ai kalon nëpër disa faza për të ndërtuar kodin e synuar. Optimizimi i kodit është një prej tyre. Ekzistojnë dy teknika optimizimi si, optimizimi i kodit i varur nga makina dhe i pavarur nga makina. Dallimi kryesor midis optimizimit të kodit të varur nga makina dhe atij të pavarur nga makina është se optimizimi i varur nga makina zbatohet në kodin e objektit ndërsa optimizimi i kodit të pavarur nga makina zbatohet në kodin e ndërmjetëm.

Çfarë është Optimizimi i Kodit të Varur nga Makina?

Kur konverton kodin burim në kodin e objektit ose kodin e synuar, përpiluesi kalon nëpër disa faza. Së pari, kodi burim i jepet analizuesit leksikor i cili prodhon shenja. Më pas, dalja i jepet analizuesit sintaksorë i cili heton nëse shenjat e gjeneruara janë në rend logjik. Ky rezultat i jepet analizuesit semantik. Supozoni se ekziston një pjesë e kodit si p=q + r;

Këtu, p, q janë numra të plotë, por r është një notues. Duke përdorur analizuesin semantik, ndryshorja e numrit të plotë c konvertohet në një float. Prandaj, ai bën analizën semantike. Prodhimi i analizuesit semantik shkon te gjeneratori i kodit të ndërmjetëm. Ai kthen një kod të ndërmjetëm i cili më pas shkon te optimizuesi i kodit. Optimizimi i kodit është procesi i eliminimit të deklaratave jo thelbësore të programit pa ndryshuar kuptimin e kodit burimor aktual. Nuk është një optimizim i detyrueshëm, por mund të përmirësojë kohën e funksionimit të kodit të synuar. Prodhimi i optimizuesit të kodit i jepet gjeneruesit të kodit dhe më në fund, ndërtohet kodi i synuar.

Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe Optimizimit të Pavarur nga Makina
Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe Optimizimit të Pavarur nga Makina
Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe Optimizimit të Pavarur nga Makina
Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe Optimizimit të Pavarur nga Makina

Figura 01: Fazat e përpiluesit

Në optimizimin e kodit të varur nga makina, optimizimi zbatohet në kodin burimor. Shpërndarja e sasisë së mjaftueshme të burimeve mund të përmirësojë ekzekutimin e programit në këtë optimizim.

Çfarë është Optimizimi i Kodit të Pavarur nga Makina?

Kur optimizimi bëhet në kodin e ndërmjetëm, ai quhet optimizimi i kodit të pavarur nga makina. Ekzistojnë teknika të ndryshme për arritjen e optimizimit të kodit të pavarur nga makina. Ato janë përshkruar duke përdorur shembujt e mëposhtëm.

Lexo rreshtat e mëposhtëm të kodit.

për (j=0; j<10; j ++) {

b=x+2;

a[j]=5 j;

}

Sipas kodit të mësipërm, b=x+2 llogaritet vazhdimisht në çdo përsëritje. Pasi llogaritet b, ai nuk ndryshon. Pra, kjo linjë mund të vendoset jashtë lakut si më poshtë.

b=x+2;

për (j=0; j< 10; j++)

{a[j]=5j;

}

Kjo quhet lëvizja e kodit.

Lexo rreshtat e mëposhtëm të kodit.

j=5;

nëse (j==10) {

a=b+20;

}

Sipas kodit të mësipërm, 'if block' nuk do të ekzekutohet kurrë sepse vlera j nuk do të jetë kurrë e barabartë me 10. Ajo tashmë është inicializuar në vlerën 5. Prandaj, ky bllok if mund të hiqet. Kjo teknikë është eliminimi i kodit të vdekur.

Një metodë tjetër është reduktimi i forcës. Operacionet aritmetike si shumëzimi kërkojnë më shumë memorie, kohë dhe cikle CPU. Këto shprehje të shtrenjta mund të zëvendësohen me shprehje të lira si b=a2; ose mund të zëvendësohet me mbledhje, b=a + a;

Referojuni kodit të mëposhtëm.

për (j=1; j <=5; j ++) {

vlera=j5;

}

Në vend të shumëzimit, kodi mund të ndryshohet si më poshtë.

int temp=5;

për (j=1; j<=5; j++) {

temperatura=temp + 5;

vlera=temp;

}

Është e mundur të vlerësohen shprehjet që janë konstante në kohën e ekzekutimit. Quhet palosje konstante. Mund të thuhet si b[j+1]=c [j+1];

Në vend të kësaj, mund të ndryshohet si më poshtë.

n=j +1;

b[n]=c[n];

Mund të ketë sythe si më poshtë.

për (j=0; j<5; j++) {

printf("a\n");

}

për (j=0; j <5; j++) {

printf("b\n");

}

Shtypja e a dhe b, të dyja kanë të njëjtin numër përsëritjesh. Të dyja mund të kombinohen në një lak për si më poshtë.

për (j=0; j <5; j++) {

printf("a \n");

printf("b\n");

}

Një teknikë tjetër e rëndësishme është eliminimi i nënshprehjeve të zakonshme. Është për të zëvendësuar shprehjet identike me një ndryshore të vetme për të bërë llogaritjen. Referojuni kodit të mëposhtëm.

a=bc + k;

d=b c + m;

Ky kod mund të konvertohet si më poshtë.

tempa=bc;

a=temp + k;

d=temp + m;

Nuk kërkohet të llogaritet bc përsëri dhe përsëri. Vlera e shumëzuar mund të ruhet në një variabël dhe të ripërdoret.

Cila është ngjashmëria midis Optimizimit të Kodit të Varur nga Makina dhe Optimizimit të Pavarur nga Makina?

Të dyja këto i përkasin Optimizimit të kodit

Cili është ndryshimi midis Optimizimit të Kodit të Varur nga Makina dhe Optimizimit të Pavarur nga Makina?

Optimizimi i kodit të varur nga makineria kundër optimizimit të kodit të pavarur nga makina

Optimizimi i kodit të varur nga makina zbatohet në kodin e objektit. Optimizimi i kodit të pavarur nga makina zbatohet në kodin e ndërmjetëm.
Përfshirja me Hardware
Optimizimi i varur nga makina përfshin regjistrat e CPU-së dhe referenca absolute të memories. Optimizimi i kodit të pavarur nga makineria nuk përfshin regjistrat e CPU-së ose referenca absolute të memories.

Përmbledhje – Optimizimi i Kodit të Varur nga Makina kundrejt Optimizimit të Kodit të Pavarur nga Makina

Optimizimi i kodit përbëhet nga dy teknika optimizimi, përkatësisht, optimizimi i kodit i varur nga makina dhe optimizimi i pavarur nga makina. Dallimi midis optimizimit të kodit të varur nga makina dhe atij të pavarur nga makina është se optimizimi i varur nga makina zbatohet në kodin e objektit ndërsa, optimizimi i kodit të pavarur nga makina zbatohet në kodin e ndërmjetëm.

Shkarko versionin PDF të "Makina Dependent" kundrejt Optimizimit të Kodit të Pavarur nga Makina

Mund të shkarkoni versionin PDF të këtij artikulli dhe ta përdorni për qëllime jashtë linje sipas shënimit të citimit. Ju lutemi shkarkoni versionin PDF këtu Dallimi midis Optimizimit të Kodit të Varur nga Makina dhe Optimizimit të Pavarur nga Makina

Recommended: