[C] Come rendere più efficiente un programma
Ciao a tutti,
vorrei sapere se ci sono delle istruzioni che potrei dare ad un software scritto in C per renderlo più efficiente e pulito.
Ad esempio, se utilizzo molti array, puntatori, variabili varie, cicli ecc, cambia qualcosa "svuotare" la memoria ad ogni ciclo di esecuzione? Ad esempio utilizzare la funzione fflush?
Vorrei sapere quali sono le istruzioni per "ripulire" la memoria insomma
Grazie anticipatamente a chiunque voglia aiutarmi
vorrei sapere se ci sono delle istruzioni che potrei dare ad un software scritto in C per renderlo più efficiente e pulito.
Ad esempio, se utilizzo molti array, puntatori, variabili varie, cicli ecc, cambia qualcosa "svuotare" la memoria ad ogni ciclo di esecuzione? Ad esempio utilizzare la funzione fflush?
Vorrei sapere quali sono le istruzioni per "ripulire" la memoria insomma

Grazie anticipatamente a chiunque voglia aiutarmi

Risposte
Se la memoria viene riutilizzata nel ciclo successivo non c'è alcun vantaggio nel rilasciarla. In ogni caso fflush non ha nulla a che fare con la memoria e ancora meno con l'aumento di performance. Sinceramente è una funzione praticamente inutile.
L'unica regola per ottimizzare il codice consiste nel misurare tali performance in modo da trovare gli hotspot del programma e valutare poi quindi i vantaggi delle varie strategie usate.Dipende insomma incredibilmente dal tuo codice.
L'unica regola per ottimizzare il codice consiste nel misurare tali performance in modo da trovare gli hotspot del programma e valutare poi quindi i vantaggi delle varie strategie usate.Dipende insomma incredibilmente dal tuo codice.
Ma come faccio a misurare le performance? E soprattutto come posso vedere i punti del codice da sistemare?
Grazie
Grazie

Esistono programmi appositi, sia commerciali che open source. I dettagli dipendono dalla scelta del programma che utilizzi, ma in genere è un output del programma.. Ma una volta che hai trovato cosa cambiare devi poi capire cosa cambiare e per questo vale solo l'esperienza e la capacità di interpretare i dati a tua disposizione.
Sapresti consigliarmi qualche programma gratuito per testare il mio software?:)
Danke!