Optimizarea codului este

În domeniul informaticii, optimizarea este procesul de modificare a sistemului pentru a-și îmbunătăți eficiența. Sistemul poate fi un singur program de calculator. un set de calculatoare sau chiar o întreagă rețea, cum ar fi Internetul.

În ciuda faptului că cuvântul „optimizare“ împărtășește aceeași rădăcină ca și cuvântul „optim“ proces de optimizare produce rar sistem optim, astfel încât există întotdeauna concesiuni (compromisurile).

Optimizarea ar trebui făcută cu prudență. Tony Hoare a vorbit prima dată, iar Donald Knuth a repetat mai târziu reputația: "Optimizarea prematură este rădăcina tuturor relelor". Este foarte important să aveți un algoritm sunat și un prototip de lucru pentru început.

Unele sarcini pot fi deseori executate mai eficient. De exemplu, luați în considerare următorul program C. care sumă toate numerele întregi de la 1 la N:

Acest cod poate fi (adică nu există nici un overflow) rescris, folosind formula matematică, în următoarea formă:

Termenul "optimizare" înseamnă de obicei că sistemul își păstrează aceeași funcționalitate. Cu toate acestea, o îmbunătățire semnificativă a performanței poate fi adesea realizată prin rezolvarea unei probleme presante și prin eliminarea funcționalității redundante. De exemplu, dacă este rezonabil să presupunem că programul nu are nevoie să suporte mai mult decât (să zicem) 100 elemente atunci când tastați, este posibil să utilizați o alocare statică a memoriei în loc de una dinamică lentă.

Alocări (compromisuri)

Optimizarea se concentrează în principal pe durata de execuție unică sau repetată, utilizarea memoriei, spațiul pe disc, lățimea de bandă sau o altă resursă. Aceasta necesită, de obicei, concesii - un parametru este optimizat în detrimentul altora. De exemplu, creșterea mărimii cache-ului îmbunătățește performanța execuției, dar, de asemenea, crește consumul de memorie. Alte concesii comune includ transparența și expresivitatea. Algoritmii complexe specializate necesită mai mult efort de depanare și crește probabilitatea de erori.

Zone diferite

În studiul operațiunilor. optimizarea este problema determinării valorilor de intrare ale unei funcții pentru care are o valoare maximă sau minimă. Uneori sunt impuse restricții asupra acestor valori, o astfel de problemă este cunoscută sub numele de optimizare limitată.

În programare. Optimizarea înseamnă de obicei modificarea codului și a setărilor sale de compilare pentru această arhitectură pentru a produce software mai eficient.

Problemele tipice au atât de multe caracteristici încât, de obicei, programatorii pot folosi doar o soluție "destul de bună".

blocaje

Pentru a optimiza, trebuie să găsiți o strangulare: partea critică a codului, care este consumatorul principal al resursei necesare. Îmbunătățirea cu aproximativ 20% a codului are drept rezultat o schimbare în 80% a rezultatelor (a se vedea și principiul Pareto).

Designul arhitectural al sistemului are un efect deosebit de puternic asupra performanței acestuia. Alegerea algoritmului afectează eficiența mai mult decât orice alt element de design. algoritmi mai complexe și structuri de date ar putea funcționa cu un număr mare de elemente, în timp ce algoritmii simpli sunt potrivite pentru cantități mici de date - facturi pentru inițializarea costurile unui algoritm mai complex poate depăși beneficiile utilizării sale.

Cu cât mai multă memorie folosită de program, cu atât mai repede se execută. De exemplu, un program de filtrare citește de obicei fiecare linie, filtrează și emite direct acest șir. Prin urmare, folosește memoria numai pentru a stoca o linie, dar performanța ei este de obicei foarte slabă. Performanța poate fi îmbunătățită foarte mult prin citirea întregului fișier și apoi prin scrierea rezultatului filtrat, dar această metodă utilizează mai multă memorie. Caching rezultatul este, de asemenea, eficient, dar necesită mai multă memorie de utilizat.

  • Optimizarea în Java
  • Optimizarea în C ++
  • Interpretare abstractă
  • Metrică de bunătate
  • cache
  • Principiul KISS
  • Graficul de transfer al transferului
  • Lazy Computing
  • Sistem virtual de nivel scăzut
  • memoization
  • Cartierul de memorie
  • Profilarea (analiza performanței)
  • Teoria de așteptare
  • Simulator
  • Performanță ipotetică
  • Cel mai rău caz de execuție

literatură

Vedeți ce înseamnă "Optimizarea codului" în alte dicționare:

Optimizarea compilatorului - această pagină este sugerată a fi combinată cu compilatorul de optimizare. Explicarea motivelor și discuțiilor de pe pagina Wikipedia: Pentru ... Wikipedia

cod ascuns - disimulare (.. obfuscare Lat obscur, obscur, umbri și engleză nu evident, confuz, confuz), și codul de confuzie pentru a aduce codul sursă sau codul executabil pentru a forma, păstrează funcționalitatea, dar ... ... Wikipedia

eliminare mort cod - În teorie, compilatoare, eliminarea codului mort (. engleză eliminare cod mort, DCE) se numește optimizare, elimină codul mort. Codul de mort (doar cod inutil) este numit codul, executarea care nu afectează încheierea programului, toate ... ... Wikipedia

Eliminarea codului imposibil de găsit - (. Engleză eliminare cod imposibil de găsit), în teorie compilator eliminare a codului imposibil de găsit se numește optimizare care elimină cod imposibil de găsit, de exemplu, cod care este conținută în program, dar din anumite motive, nu a efectuat [1]. În ... ... Wikipedia

optimizare interprocedural - (engleză interprocedural de optimizare, IPO.) Sau polnoprogrammnaya optimizare optimizare compilator, care implică o serie de proceduri, de multe ori localizate în diferite module. Această optimizare poate fi aplicată numai prin analizarea ... ... Wikipedia

Articole similare