GCD, segue
Le caratteristiche peculiari di GCD danno modo a programmatori e i sviluppatori
di definire piccoli frammenti di lavoro che possono essere isolati e scorporati
dal thread principale di un'applicazione, rendendola in questo modo più
reattiva agli input dell'utente. Le applicazioni GCD-based permettono di ottenere
una maggiore efficienza complessiva del sistema, grazie ad un codice complessivamente
più contenuto, all'impiego di minor CPU time e memoria rispetto ai meccanismi
tradizionali.
La programmazione basata su GCD consente di realizzare applicativi in grado
di scalare in maniera dinamica a seconda dell'hardware sul quale vengono eseguiti.
Di norma, quando uno sviluppatore si trova nelle condizioni di dover lavorare
all'ottimizzazione di un programma multithread, incorre nella necessità
di conoscere i dettagli dell'hardware sul quale opera la specifica applicazione
e, affinché l'ottimizzazione sia davvero tale, è inoltre necessario
che nessun altro programma sia in esecuzione. Se tale scenario può essere
anche abbastanza comune negli ambiti di supercomputing, ciò non avviene
in contesto desktop, dove spesso più applicativi, di varia natura, sono
contemporaneamente in esecuzione. GCD, ricoprendo il ruolo di "supervisore"
delle attività, riesce ad ovviare a questo problema: il programmatore
è infatti messo nelle condizioni di strutturare il codice di un applicativo
in una maniera che permetta di identificare tutte le opportunità di parallelizzazione
disponibile e lasciando che sia il sistema operativo, grazie a GCD, a decidere
l'adeguato grado di parallelismo con il quale eseguire un'applicazione, sulla
base della piattaforma hardware esistente e sulla base della richiesta computazionale
delle altre applicazioni in esecuzione. Questo meccanismo consente pertanto
alle applicazioni e al sistema operativo di scalare in maniera efficente da
uno a molti processori senza che sia necessaria una regolazione manuale delle
applicazioni.
Grand Central Dispatch è in grado di apportare i benefici descritti
sopra e al contempo permette di ridurre la complessità del codice che
è necessario scrivere. Molti sviluppatori hanno constatato che l'adozione
di GCD permette di migliorare in maniera sensibile la leggibilità del
codice e, conseguentemente, la sua manutenzione e la correttezza del codice,
precedentemente portato avanti con le tradizionali tecniche di programmazione
multithreaded.
Strumenti di sviluppo GCD
Affinché gli sviluppatori possano sfruttare al meglio le caratteristiche
di Grand Centra Dispatch, Apple mette a disposizione, direttamente all'interno
del DVD di installazione di Snow Leopard, una serie di strumenti atti allo scopo
come parte dell'ambiente di sviluppo Xcode.
Nello specifico è possibile disporre di una serie di strumenti di analisi
che consentono di verificare l'efficienza di codice scritto per GCD grazie ad
un monitoraggio in tempo reale relativo all'uso di blocchi e code mentre l'applicazione
è mandata in esecuzione. Più nel dettaglio, gli strumenti di analisi
forniti all'interno di Xcode permettono di tenere traccia del numero di volte
che un blocco è stato eseguito, della durata di esecuzione di una particolare
istanza di blocco e la latenza di una determinata coda. |