Tempo di compilazione: quando il processore fa la differenza

Cosa fa un programmatore medio durante il corso della sua giornata? Praticamente scrivere un codice e testarlo, scrivere un codice e testarlo, in continuazione, fino a quando non avrà ottenuto il risultato desiderato o non avrà corretto il bug su cui sta lavorando. Per fortuna l’attività è molto più stimolante di così, ma sicuramente è un lavoro di pazienza e di precisione, per il quale alcuni dettagli, che molti programmatori trascurano, possono fare la differenza nel lungo termine. Ci riferiamo ad esempio ai tempi di compilazione. Incubo e certezza di tutti i programmatori, spesso viene dato per scontato e accettato così com’è, ma è in realtà un elemento che può fare la differenza tra la produttività e l’improduttività. Concretamente, il tempo di compilazione è il tempo che intercorre fra il momento in cui arriva l’input al sistema ed il momento in cui è disponibile il suo output, o in parole semplici, quello che il PC impiega per verificare la correttezza del codice scritto.

 

 

Se vi state chiedendo quale sia il problema, probabilmente è perché non siete dei programmatori. Immaginate di star scrivendo un’applicazione web o desktop: ogni volta che premete il pulsante “build” per compilare il codice scritto, c’è un tempo d’attesa che può variare enormemente a seconda della quantità di codice creato. Il problema è che per un codice abbastanza complesso si può passare anche ad un tempo di compilazione di 30 – 40 minuti, durante il quale non è possibile apportare modifiche al codice.

Immaginate nel corso di una vita lavorativa quanto tempo un programmatore sprechi nell’attesa della compilazione del programma!

 

Per quanto riguarda il browser Firefox, nella migliore delle ipotesi potremmo impiegare 23 minuti. Ma potremmo arrivare addirittura a 46 nello scenario peggiore! Cosa determina tutta questa differenza? La prestazione della CPU.

Dire che il tempo è denaro può sembrare scontato, ma è chiaro che a nessuno piace sprecarlo così. In certi casi poi, in particolare in caso di lavoro freelance, ogni istante di ritardo rischia di impattare sulle consegne, e quindi sulle entrate.

Avere una CPU che vi possa permettere di risparmiare tempo vuol dire quindi non solo guadagnare di più a fine mese, ma anche potervi permettere più tempo libero e garantire prestazioni migliori. Provate ad immaginare: perdendo anche solo 6 minuti per compilare il vostro progetto, ma facendolo con una media di 10 volte al giorno, a fine giornata ben 60 minuti saranno passati aspettando che il vostro pc compilasse il codice da voi scritto. In un mese diventeranno ben 20 ore di attesa, e lasciamo fare a voi i conti matematici sul resto.

È evidente che acquistare un PC con un processore davvero performante, come quelli basati sui nuovi processori Intel Core i7 di settima generazione (per non parlare di quelli Extreme Edition), potrà quindi fare la differenza in modo sostanziale. Da bravi programmatori daremo anche per scontato che l’idea di assemblare un PC o di integrare ulteriori componenti non vi spaventi o quantomeno vi stimoli, quindi forse l’acquisto di un PC completo può anche non essere necessario.

 

 

Come avete potuto vedere nel grafico sopra, le differenze tra vari processori in termini di performance sono davvero notevoli; la verità è che sarete velocemente ripagati dell’investimento fatto: può essere quindi una soluzione ottimale e conveniente per risparmiare tempo (e quindi soldi) durante la vostra carriera da programmatore.

Chiaramente ci sono altri metodi per attenuare il problema, ma è chiaro che contro la potenza innata della CPU tutte le modifiche che si possono fare sono relative.

Può essere sicuramente utile provare con il Cloud building, ovvero configurare un server in cloud dandogli la possibilità di creare build in automatico dei vostri software; questo vi permetterà di continuare a lavorare, mentre il vostro server fa il lavoro sporco.

In alternativa, è possibile provare ad ottimizzare il software per compilare, anche se ottimizzare il compilatore non è un lavoro semplice: richiede molto tempo per capirne il funzionamento e quali parti modificare, ma può comunque essere una soluzione valida per tentare di ridurre i tempi di compilazione del vostro software.

Quando si entra negli aspetti più tecnici dell’utilizzo di un PC, come la programmazione o l’uso di programmi di grafica avanzati, è chiaro che la potenza dell’hardware faccia la differenza su tanti aspetti, ma soprattutto sui tempi di attesa. E non c’è nulla di più prezioso del nostro tempo.

di Marco Mignanowww.gamedevelopertips.com

Photo Credits:

Compiling Qt SDK

 

 

Condividi questo articolo

Read Full Story