Conosco solo un modo per rispondere a questa domanda, e cioè fare esperienza nell'ottimizzazione delle prestazioni. Ciò significa: scrivere programmi e, dopo averli scritti, trovare gli speedups in essi e farlo in modo iterativo. Ecco un esempio.
Ecco l'errore che molte persone commettono: cercano di ottimizzare il programma prima di eseguirlo. Se hanno frequentato un corso di programmazione (da un professore che in realtà non ha molta esperienza pratica) avranno gli occhiali colorati Big-O, e penseranno che è di questo che si tratta . È lo stesso problema, l'ottimizzazione preventiva. **
Qualcuno ha detto: prima fai la cosa giusta, poi fai in fretta. Avevano ragione.
Ma ora per il kicker: se lo hai fatto un paio di volte, riconosci le cose sciocche che hai fatto in precedenza che causano problemi di velocità, quindi istintivamente le eviti. (Cose come rendere la struttura della tua classe troppo pesante, essere inondato di notifiche, confondere le dimensioni delle chiamate di funzione con il loro costo in tempo, l'elenco potrebbe continuare all'infinito ...) Le eviti istintivamente, ma indovina come si presenta al meno- esperto: ottimizzazione prematura!
Quindi questi sciocchi dibattiti continuano all'infinito :)
** Un'altra cosa che dicono è che non devi più preoccupartene, perché i compilatori sono così buoni e le macchine sono così veloci al giorno d'oggi. (KIWI - Kill It With Iron.) Non ci sono accelerazioni esponenziali dell'hardware o del sistema (eseguite da ingegneri molto intelligenti che lavorano sodo) che possono eventualmente compensare rallentamenti esponenziali del software (eseguiti da programmatori che la pensano in questo modo).