Ottimizzazione (informatica)

In informatica, l'ottimizzazione è il processo atto a modificare alcuni aspetti di un sistema per lavorare più efficientemente o per utilizzare meno risorse. Ad esempio, un programma per computer può essere ottimizzato in modo che venga eseguito più velocemente o in modo da richiedere meno memoria o consumare meno energia della batteria. Il sistema può essere un singolo programma, un insieme di computer o un'intera rete come Internet.

Anche se la parola "ottimizzazione" condivide la stessa base di "ottimo", è raro che il processo di ottimizzazione produca un sistema ottimo. Il sistema ottimizzato sarà tipicamente ottimo solamente in un senso. Si può ridurre il tempo di esecuzione di un programma, ma al prezzo di consumare più memoria; oppure un programma può occupare meno memoria, ma al prezzo della velocità di esecuzione. Non esiste una soluzione che "metta d'accordo tutti", cosicché il programmatore dovrà sapere quale strada perseguire. In più, il tentativo atto a rendere ottimo una parte del software è di solito più dispendioso rispetto ai benefici che si può ottenere. In questo modo il processo di ottimizzazione può essere saltato prima di trovare una soluzione completamente ottimale. Fortunatamente i più grandi miglioramenti arrivano sempre prima di questo processo.

L'ottimizzazione può essere a più livelli. Al livello più alto il progetto può essere ottimizzato per sfruttare al meglio le risorse. L'implementazione può essere fatta mediante algoritmi efficienti e la scrittura di questi algoritmi beneficerà da quella di codice di buona qualità. L'uso di un compilatore con ottimizzatore aiuta a generare un programma eseguibile ottimizzato. Al livello più basso è possibile scrivere codice Assembly direttamente a mano. Con i compilatori moderni e la crescente complessità dei processori, occorrono grandi abilità a scrivere codice assembly che è migliore di quello del compilatore. L'ottimizzazione di solito viene fatta in casi speciali e il codice può essere più difficile da leggere e può contenere più errori rispetto al codice non ottimizzato.


© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search