Come confrontare computer Algoritmi

October 22

Gli sviluppatori di software bilanciare molti fattori, quando la creazione di applicazioni e siti web. Nei primi giorni, quando i computer avevano poco spazio e le risorse, le dimensioni e la velocità erano le principali preoccupazioni. Oggi, con i processori multi-core e gigabyte di memoria, la complessità e la manutenibilità spesso ignorare le prestazioni. Ecco alcuni dei principali fattori da considerare quando si sceglie gli algoritmi giusti per il vostro progetto.

istruzione

1 Misurare le prestazioni. Il primo fattore che viene sempre in mente quando si misura un algoritmo è la velocità. Nessuno vuole aspettare per il software lento. Ci sono diversi modi per determinare quale algoritmo si esibiranno migliore per il compito a portata di mano. Un algoritmo può essere misurata manualmente contando istruzioni, utilizzando le probabilità per determinare percorsi di esecuzione. Più facile ancora sono profiler che contano cicli macchina come il codice viene eseguito.

2 Confrontare le dimensioni del codice. Anche se non è così importante come prestazioni, le dimensioni del codice a volte non diventa un fattore. software embedded e applicazioni mobili hanno spesso bisogno di condividere la memoria limitata, e il codice basato su browser vuole tempo per scaricare. A volte un piccolo colpo in prestazioni può essere sacrificato radere una quantità significativa di codice.

3 Determinare il livello di complessità. La maggior parte degli sviluppatori di software commerciali di scrivere codice distribuito su PC desktop o server web con un sacco di potenza di elaborazione e più di memoria sufficiente. Oggi, la sfida più grande è nella gestione della complessità. Una abbastanza semplice applicazione aziendale spesso può avere da poche decine a diverse centinaia di moduli di codice, ciascuna con diverse centinaia di righe di codice. In queste applicazioni, i migliori algoritmi sono semplici da capire e facile da implementare. Per misurare la complessità, contare il numero di punti di decisione, chiamate di funzione, numero di variabili e la complessità delle strutture di dati.

4 Confronta manutenibilità. Strettamente accoppiato con complessità è la manutenibilità. Un algoritmo con minore complessità, presentato con abbondanza di spazio bianco e abbondantemente cosparso di commenti ben scritti, sarà molto più facile da modificare quando i requisiti cambiano. La maggior parte degli sviluppatori trascorrono molto più tempo mantenere e modificare il codice esistente di quanto non facciano la creazione di un nuovo software.

5 Convalida per la correttezza. Spesso trascurato in una discussione di algoritmi è la necessità di un appropriato algoritmo che soddisfa tutti i requisiti e funziona correttamente. Il codice deve restituire risultati accurati per gli ingressi, tra cui condizioni al contorno e valori imprevisti. I filtri devono essere in atto per respingere dati non corretti, e il codice di gestione delle eccezioni devono rispondere a overflow numerici, underflow, errori di rete o altre condizioni.

6 Scegliere l'algoritmo più appropriato. La scelta migliore equilibrio tutti questi fattori in modo da ottimizzare le prestazioni riducendo al minimo costi di sviluppo e di proprietà.