7 metodi di ottimizzazione del codice secondo gli standards ISO 5055
Scrivere codice efficiente e ottimizzato è un aspetto cruciale per ridurre il consumo di risorse e di energia durante l’esecuzione del software. Ciò non solo migliora le prestazioni complessive dell’applicazione, ma contribuisce anche a ridurre l’impatto ambientale, secondo i dettami della Green Software Foundation.
ISO/IEC 5055:2021 (di seguito denominato ISO 5055) è uno standard ISO per misurare la struttura interna di un prodotto software su quattro fattori critici per l’azienda: sicurezza, affidabilità, efficienza delle prestazioni e manutenibilità. Questi sono i fattori che determinano quanto affidabile, resiliente sia un sistema software.
Scrivere codice efficiente si riferisce alla pratica di creare software che utilizzi in modo ottimale le risorse disponibili, come la CPU, la memoria e altre risorse di sistema. L’obiettivo è massimizzare l’efficienza delle operazioni eseguite dal software, riducendo al minimo lo spreco di risorse e di energia.
Per alcuni consigli pratici su come ottimizzare il codice nelle app mobile in flutter vi rimandiamo a quest’articolo.
Ecco una lista di pratiche con descrizione ed esempi:
1) Minimizzare l’Utilizzo di Cicli
2) Gestione Efficiente della Memoria
3) Cache Awareness
4) Evitare Chiamate di Funzioni Ridondanti
5) Ottimizzare le Query al Database
6) Parallelismo e Concorrenza
7) Gestione delle Risorse Esterne
8) Ridurre l’Overhead
1. Minimizzare l’Utilizzo di Cicli
Evitare cicli eccessivamente complessi o ripetitivi può ridurre il carico sulla CPU e migliorare le prestazioni. Ad esempio, preferire l’uso di operazioni vettorialiali anziché cicli espliciti.
2. Gestione Efficiente della Memoria
Allocare e deallocare la memoria in modo appropriato per evitare perdite di memoria o frammentazione. Utilizzare strutture dati ottimizzate può migliorare l’efficienza e ridurre il consumo di memoria.
3. Cache Awareness
Sfruttare la gerarchia della cache per ottimizzare l’accesso alla memoria. Mantenere i dati locali ai registri o alla cache può ridurre i tempi di accesso alla memoria principale.
4. Evitare Chiamate di Funzioni Ridondanti
Ridurre il numero di chiamate di funzioni ridondanti o non necessarie può migliorare le prestazioni. Ad esempio, evitare chiamate costose in loop.
5. Ottimizzare le Query al Database
Scrivere query SQL efficienti, evitando la selezione di colonne non necessarie o l’uso eccessivo di JOIN, può migliorare le prestazioni del software.
6. Parallelismo e Concorrenza
Sfruttare il parallelismo e la concorrenza quando possibile per suddividere il carico di lavoro tra più thread o processi. Ciò può migliorare l’utilizzo della CPU e accelerare l’esecuzione.
7. Gestione delle Risorse Esterne
Assicurarsi di chiudere e rilasciare correttamente le risorse esterne, come file e connessioni di rete, per evitare sprechi e consumi inutili.
8. Ridurre l’Overhead
Come imparai molti anni fa in un vecchio manuale di marketing: dare al cliente sempre di piu’ di cio’ che si aspetta. Ecco un ottavo elemento:minimizzare l’overhead generato da operazioni accessorie o da strutture dati complesse può migliorare le prestazioni e l’efficienza.