hardware,

Tutto qui? Parliamo ancora di hardware

Sabino Maggi Sabino Maggi Segui 24-Nov-2016 · 19 minuti di lettura
Condividi

L’idea iniziale per questo secondo articolo dedicato all’hardware dei nuovi MacBook Pro era di concentrarsi sugli altri componenti della macchina – RAM, disco SSD, porte di interfaccia, scheda grafica, schermo LCD, touchpad – analizzandone gli aspetti positivi e le limitazioni. Ma non poteva funzionare: sarebbe venuto fuori un articolo noioso e poco comprensibile per la maggior parte dei lettori.

Ho deciso invece di analizzare in dettaglio quello che faccio ogni giorno con il mio Mac, con l’obiettivo di verificare le conclusioni di Jonathan Zdziarski, che i 16 GB di memoria RAM (massima) dei nuovi MacBook Pro sono più che sufficienti anche per i professionisti più avidi di risorse. Chi vuole evitare la lunga descrizione di quello che ho fatto può saltare direttamente alle conclusioni finali.

La macchina

Tutte le prove sono state eseguite con un iMac acquistato a metà del 2014 che in questo momento rappresenta la mia macchina principale. La configurazione hardware scelta era praticamente quella top disponibile al momento dell’acquisto (a parte la possibilità di installare un disco Fusion più capiente):

  • iMac 21.5 pollici late 2013 con OS X El Capitan 10.11.6;
  • processore Intel Core i7 da 3.1 GHz con 4 core fisici (8 core logici) e 8 MB di cache L3;
  • 16 GB di RAM DDR3 da 1600 MHz;
  • disco interno SSD PCI da 500 GB (con ancora 165 GB liberi);
  • 2 dischi esterni Thunderbolt 2, uno da 2 TB per i dati e uno da 4 TB riservato a Time Machine;
  • scheda grafica NVIDIA GeForce GT 750M con 1 GB di RAM GDDR5.

L’iMac è costato in tutto 2.500 euro (con sconto Education dell’8%), compresi i due dischi rigidi esterni e qualche accessorio (cavi, adattatori, hub usb, lucchetto).

Per confronto, la configurazione hardware del MacBook Pro 15 pollici late 2016 top di gamma equivalente (scegliendo ancora una unità SSD di capienza inferiore a quella massima disponibile) è:

  • MacBook Pro 15 pollici late 2016 con OS X Sierra 10.12.1;
  • processore Intel Core i7 da 2.9 GHz con 4 core fisici (8 core logici) e 8 MB di cache L3 (le specifiche tecniche dei tre processori disponibili per il MacBook Pro da 15 pollici si trovano qui);
  • 16 GB di RAM LPDDR3 da 2133 MHz;
  • disco interno SSD PCIe da 1 TB;
  • schede grafiche Intel HD Graphics 530 e Radeon Pro 460 con 4 GB di RAM GDDR5 (con passaggio automatico da una all’altra scheda grafica);

ad un costo totale, compreso lo sconto Education, di ben 3.800 euro (senza considerare i dischi esterni e gli accessori, per i quali bisogna aggiungere almeno altri 600-700 euro), circa l’80% in più del mio iMac di due anni fa.

Prima di iniziare ho spento e riavviato il Mac, in modo da partire da uno stato il più possibile definito. Subito dopo il login e una volta completati tutti i processi automatici di avvio (fra cui Dropbox, TeamViewer e Get Plain Text), l’occupazione di memoria riportata da Monitoraggio Attività è

Memoria Dimensione
Utilizzata 3.0 GB
Cache 3.4 GB
Spazio di scambio 0 byte

Dei 3.0 GB di memoria utilizzata, 1.8 GB sono usati dai processi del sistema operativo e dalle applicazioni, 1.2 GB sono memoria wired, necessaria per l’esecuzione delle applicazioni e che non può essere usata da altri processi, compressa o salvata nello spazio di scambio sul disco rigido (detto anche memoria virtuale o swap), e infine 0.0 GB sono memoria compressa per dare più spazio alle altre applicazioni. I 3.4 GB di memoria cache rappresentano invece la memoria usata dalle applicazioni appena chiuse. La memoria cache può velocizzare parecchio l’avvio delle applicazioni già usate se queste vengono eseguite di nuovo prima che la memora cache venga sovrascritta.

La memoria occupata dalle app, quella wired e quella compressa saranno indicate da ora in poi in modo più compatto con (app:1.8/wired:1.2/compr:0.0), dove tutte le dimensioni sono espresse in GB.

Utilizzo leggero: applicazioni da ufficio

Conclusa la fase di avvio, comincio ad usare l’iMac lanciando, come succede ogni giorno, Firefox e Thunderbird (quest’ultimo in realtà è attivo 24 ore su 24 sul mio iMac). La memoria occupata diventa

Memoria Dimensione
Utilizzata 3.8 GB
Cache 3.7 GB
Spazio di scambio 0 byte

di cui (app:2.6/wired:1.2/compr:0.0).

Eseguo le attività che aprono la mia giornata di lavoro: controllo la posta elettronica e leggo qualche qualche pagina web. La memoria occupata aumenta di qualche centinaio di MB.

Lancio le applicazioni che uso tutti i giorni, Slack, TextMate, il Terminale, MacDown (per prendere gli appunti per questo articolo). Apro con Anteprima alcuni eBook in pdf per cercare una informazione che mi serve. Mi rendo conto per la prima volta, guardando la finestra di Monitoraggio Attività, che basta scorrere le pagine dei volumi per aumentare a dismisura la memoria occupata. Per simulare quello che (purtroppo!) fanno la maggior parte degli utenti, lancio anche Word ed Excel, aprendo due documenti piuttosto semplici per ciascuno dei programmi. Con queste applicazioni attive, la memoria occupata del Mac aumenta a ben

Memoria Dimensione
Utilizzata 9.0 GB
Cache 7.0 GB
Spazio di scambio 0 byte

di cui (app:7.7/wired:1.3/compr:0.0). Le applicazioni più avide di risorse sono Anteprima, che riempie ben 2.0 GB di RAM con una ventina di file pdf aperti, e Firefox, che in questo momento ha bisogno di quasi 1 GB di memoria.

Applicazioni da ufficio

Se avessi solo 8 GB di RAM sarei già in difficoltà.

Utilizzo medio: applicazioni standard

Chiudo Word ed Excel, lasciando aperte tutte le altre applicazioni (che uso di continuo nel corso della giornata). Prima di cominciare questa seconda fase di prove, cancello la cache della memoria con il comando da Terminale

$ sudo purge

che riporta (temporaneamente) l’occupazione di memoria a

Memoria Dimensione
Utilizzata 8.6 GB
Cache 0.3 GB
Spazio di scambio 0 byte

di cui (app:7.3/wired:1.3/compr:0.0). Dopo alcuni minuti di uso del Mac la cache torna di nuovo a crescere fino a circa 1 GB (come deve succedere: le applicazioni che promettono id liberare la memoria cancellando la cache non servono a niente).

Lancio di nuovo Excel, a cui aggiungo TeXShop, RStudio, Scrivener, Plot2.

Carico un file Excel di dimensioni “normali” contenente dei dati provenienti da una misura recente e creo i grafici a dispersione (X-Y) di alcune colonne di dati. Passo ad RStudio e lancio tre o quattro programmi che eseguono calcoli piuttosto semplici su un’altra serie di dati e producono il grafico dei risultati. Correggo con TeXShop la brutta di un articolo in LaTeX e genero ogni tanto il file pdf di anteprima. Mentre correggo l’articolo, consulto i miei appunti su Scrivener e prendo nota delle cose da aggiungere o modificare. Passo a Plot2 e creo gli stessi grafici a dispersione che ho appena realizzato in Excel (ma con una qualità nettamente migliore). La memoria Utilizzata aumenta di quasi 1 GB.

Eseguo un ciclo di calcolo con un programma da Terminale a cui sto dando i tocchi finali. Il programma si prende il 100% di uno dei core del processore, oscillando di continuo fra i 4 core disponibili, ma l’occupazione di memoria non cambia.

Passo a TextMate, apro un file di dati in formato CSV di ~73 MB e lo copio e incollo in Excel. Excel ci mette un po’ a rispondere ma alla fine tutti i dati sono inseriti perfettamente nelle celle del foglio elettronico. Tutto ciò mi costa però più di un altro GB di memoria utilizzata.

Per simulare cosa succede lavorando su un foglio elettronico di queste dimensioni, eseguo una semplice ricerca e sostituzione all’interno dle foglio Excel appena creato: uno dei core schizza di nuovo al 100% ed Excel riempie rapidamente la memoria disponibile,

Memoria Dimensione
Utilizzata 14.1 GB
Cache 1.9 GB
Spazio di scambio 4.3 MB

arrivando ad occupare da solo ben 4.2 GB. Per diminuire l’occupazione di memoria fisica OS X inizia a comprimere una parte della memoria (arrivando fino a 1.2 GB di memoria compressa) e subito dopo a salvare parte della memoria nello spazio di scambio (swap) sul disco rigido.

Applicazioni standard

Ho esaurito i 16 GB di memoria disponibili sul mio Mac. Se continuassi a lavorare sul foglio elettronico finirei per aumentare sempre più la dimensione dello spazio di scambio sul disco rigido, a scapito della velocità globale del sistema.

Chiudo e riapro Excel con lo stesso file da 50 MB, seleziono una coppia di colonne e creo uno dei soliti grafici a dispersione. L’occupazione di memoria diminuisce, ma lo spazio di scambio rimane consistente e supera i 50 MB.

Lascio Excel aperto ed eseguo alcuni calcoli con uno script in RStudio che legge il file dati in formato CSV uttilizzato in precedenza, calcola alcuni parametri statistici di base e produce un grafico a dispersione delle prime 5 coppie di colonne. La memoria occupata torna di nuovo a salire rapidamente, fino a riempire praticamente tutta la memoria fisica disponibile.

Memoria Dimensione
Utilizzata 12.0 GB
Cache 3.4 GB
Spazio di scambio 10 MB

Avevo pianificato di usare anche Mathematica, un’altra delle applicazioni che fanno parte del mio normale flusso di lavoro, ma i risultati ottenuti mi fanno decidere di soprassedere, non potrei aggiungere niente di più a quello che ho già verificato.

È chiaro che la memoria di 16 GB del mio iMac è oggi appena sufficiente per svolgere le attività che fanno parte del mio flusso di lavoro giornaliero. Fra un paio di anni, complice l’aumento (inevitabile) di funzionalità del sistema operativo e delle applicazioni, diventerà scarsa.

Utilizzo pesante: sviluppo multipiattaforma

Potrei anche chiudere qui, ma voglio mostrare cosa succede con un utilizzo ancora più pesante del Mac, che è poi il motivo che mi ha messo in allerta e mi ha fatto decidere di eseguire queste prove.

Come prima, chiudo le applicazioni usate in questa fase – Excel, TeXShop, RStudio, Scrivener, Plot2 – ma lascio attive tutte le altre. Cancello la cache della memoria con il comando da Terminale

$ sudo purge

che riporta l’occupazione di memoria a 9.1 GB, riducendo anche lo spazio di scambio utilizzato a soli 6.5 MB.

Già che ci sono, aggiorno alcune app dall’App Store e ne scarico un paio che mi interessano che oggi sono in offerta.

Lancio Parallels e facco partire una dopo l’altra le macchine virtuali (VM) di Windows XP Professional, OS X El Capitan, OS X Yosemite, Debian Linux a 64 bit, Ubuntu Linux a 32 bit e Ubuntu Linux a 64 bit.

Tutto ciò mi serve per riprodurre quello che ho fatto negli ultimi giorni: compilare un mio programma – un’applicazione da Terminale senza interfaccia grafica che utilizza in modo pesante il solo processore – e testarlo su varie versioni di Windows, OS X e Linux, un’attività (noiosissima!) piuttosto comune per chi sviluppa applicazioni multipiattaforma. Poter provare l’applicazione in contemporanea su più sistemi operativi attraverso l’uso di un buon emulatore (come Parallels o Fusion sul Mac) è fondamentale per ridurre i tempi di sviluppo e soprattutto di debug.

Parallels: 5 macchine virtuali aperte contemporaneamente

Con l’esaurirsi della memoria, l’avvio di ciascuna macchina virtuale diventa sempre più lento. Ad esempio, la VM di Debian Linux normalmente esegue il boot in pochi secondi che però ora, con tre VM già attive, diventano più di due minuti. Ancora più lento è il passaggio dallo schermo di login al Desktop pronto per essere utilizzato.

Inoltre, le macchine virtuali diventano molto poco responsive ed ogni operazione viene eseguita molto lentamente. La macchina virtuale meno esosa di risorse è quella di Debian Linux (come era facile prevedere), le più ingorde sono le due VM di OS X, nelle quali il solo aprire una finestra del Finder o il Terminale (le uniche operazioni che devo eseguire nei miei test) impiega tempi incomprensibilmente lunghi (a differenza di quello che succede con una o due VM aperte contemporaneamente).

Ormai ho occupato praticamente tutta la memoria RAM disponibile, e questa volta OS X inizia ad usare pesantemente la memoria virtuale, che cresce fino a circa 700 MB,

Memoria Dimensione
Utilizzata 14.1 GB
Cache 1.9 GB
Spazio di scambio 730 MB

di cui (app:3.4/wired:9.5/compr:1.1).

Come è successo prima, sembra che OS X non possa utilizzare più di 14.1 GB, forse perché i 1.9 GB di cache sono riservati al sistema operativo.

Sviluppo multipiattaforma

Quasi per gioco, provo a lanciare il mio programma in tutte le VM contemporaneamente. Tutti gli otto core logici disponibili vengono occupati quasi al 100%, come è visibile nell’immagine qui sotto, ma come è facile prevedere dalle caratteristiche dell’applicazione, l’occupazione di memoria non aumenta in modo significativo.

Occupazione del processore

Nonostante il carico pesantissimo delle sei VM attive contemporaneamente sul processore e sulla memoria, il resto del sistema si mantiene perfettamente stabile e non manifesta rallentamenti avvertibili, a dimostrazione della eccellente qualità globale del sistema operativo sviluppato da Apple.

Prima di concludere questa parte, vorrei precisare che, a differenza di quanto riportato da Jonathan Zdziarski, anche usare Xcode può diventare a volte molto pesante per le risorse di memoria.

Ho provato a sviluppare in Xcode una piccola app per iOS, una cosa semplice semplice da pochissime righe di codice. Xcode mette a disposizione un simulatore che consente di provare l’app senza dover usare un dispositivo iOS reale, con l’enorme vantaggio aggiuntivo di poter simulare un grande numero di combinazioni diverse di dispositivi fisici e di versioni di iOS a costo zero.

Purtroppo far partire ciascun simulatore è una operazione piuttosto lunga (in particolare la prima volta, dalla seconda in poi la memoria cache aiuta a velocizzare l’operazione) e Xcode consente di usarne solo uno alla volta. In certe fasi sarebbe utile poter lanciare più di un simulatore, in modo da verificare il comportamento dell’app e della sua interfaccia grafica su più dispositivi contemporaneamente. Anche se Xcode non lo permette, con un piccolo trucco si possono lanciare da Terminale fino a 9 simulatori iOS in parallelo, un numero che non è nemmeno troppo alto se si considerano le decine e decine di combinazioni possibili (se non ho sbagliato a contare, solo per iOS ci sono in questo momento ben 128 combinazioni diverse). Con 9 simulatori attivi, l’occupazione di memoria diventa

Memoria Dimensione
Utilizzata 13.5 GB
Cache 2.5 GB
Spazio di scambio 0.4 GB

di cui (app:10.9/wired:1.9/compr:0.7). Il sistema esaurisce di nuovo la memoria diponibile e inizia ad usare lo spazio di scambio in modo piuttosto pesante.

Casi estremi?

Qualcuno potrebbe obiettare che i miei esempi sono dei casi estremi di uso del Mac, scelti ad hoc per dimostrare la mia tesi.

Non c’è niente di più lontano dalla realtà. L’articolo di Jonathan Zdziarski e i risultati analoghi riportati su QuickLoox mi hanno colpito proprio perché erano molto lontani dalla mia esperienza personale di tutti i giorni.

Partendo da questi risultati, ho deciso di eseguire delle prove in modo il più possibile controllato e controllabile – oserei dire perfino scientifico se non fosse un termine troppo importante per una cosa del genere – provando a riprodurre alcuni miei comuni flussi di lavoro.

Più specificatamente, se è vero che il foglio elettronico utilizzato è di dimensioni notevoli (è costituito da un singolo foglio di 250.000 righe per 32 colonne), rimane molto al di sotto dei limiti di Excel (attualmente 1.048.576 righe per 16.384 colonne). Anche la dimensione fisica del documento, circa 50 MB, pur se elevata, non è niente di trascendentale: parecchia gente lavora con fogli elettronici di dimensioni analoghe e alcuni arrivano perfino a trattare fogli elettronici di centinaia di MB (e sarei curioso di sapere come fanno).

Bisogna anche tenere presente che io ho usato per semplicità un singolo foglio piuttosto grande, ma risultati analoghi (se non peggiori) li avrei ottenuti anche con 5 o 6 fogli più piccoli aperti contemporaneamente (un caso ancora più comune). Inoltre nelle prove con Excel mi sono limitato ad eseguire una semplice operazione di ricerca, senza formattare le celle o inserire delle formule, tutte operazioni normalissime con un foglio elettronico, ma che che avrebbero richiesto ancora più risorse di memoria.

Per quanto riguarda le macchine virtuali, usarne cinque o sei in contemporanea è quasi il minimo sindacale per chi fa sviluppo multipiattaforma, come nel mio caso, o anche per chi produce applicazioni per il web, da testare su una varietà forse ancora maggiore di combinazioni di sistema operativo e browser web. Anzi, se non avessi sbattuto abbastanza presto contro i limiti di memoria, avrei dovuto aggiungere almeno un’altra macchina virtuale con Windows 7 o Windows 10 (che sono quasi dei mattoni per Parallels) e una con una distribuzione di Linux non derivata da Debian (ad esempio Red Hat o CentOS).

Conclusioni

Con questo lungo articolo ho cercato di dimostrare che 16 GB di RAM sono appena sufficienti per svolgere oggi dei compiti che, anche se piuttosto impegnativi, non sono certo inusuali per chi usa il proprio computer per svolgere determinate attività professionali.

I miei esempi si sono focalizzati sulle attività di tipo scientifico e di sviluppo software che conosco meglio, ma sono sicuro che altri professionisti attivi in ambiti legati all’ingegneria, al multimedia o all’elaborazione di immagini, potrebbero fare esempi altrettanto impegnativi.

Questo è uno dei motivi (ma non l’unico) che mi hanno portato ad essere molto deluso dai nuovi MacBook Pro presentati a fine ottobre. Non sono l’unico, anzi sono in compagnia di un folto gruppo di utenti professionali che condividono questa sensazione.

Proporre oggi come macchine professionali dei computer portatili con al massimo 16 GB di memoria, senza nemmeno offrire l’opzione di montarne una quantità maggiore (almeno) in fase di acquisto, è una vera e propria assurdità. Se 16 GB di memoria possono ancora bastare con i sistemi operativi e le applicazioni odierne, cosa succederà fra due o tre anni, quando le risorse richieste dalle nuove versioni di OS X e delle applicazioni saranno presumibilmente ben più consistenti?

Limitare la memoria massima solo per poter ridurre di qualche millimetro lo spessore delle nuove macchine e far durare qualche decina di minuti in più la batteria, come ha ammesso recentemente Phil Schiller, non fa altro che aggiungere ulteriori danni alla beffa.

Siamo alla sostanza al servizio della forma. Ma che me ne faccio di una forma bellissima e sottilissima, se il MacBook Pro che posso comprare a carissimo prezzo oggi mi da esattamente la stessa quantità di memoria di due o tre anni fa, come se la legge di Murphy Moore1 e i progressi tecnologici intercorsi non fossero mai esistiti?

È noto che i Mac – i nuovi MacBook Pro in particolare – sono macchine costose, ma hanno il grosso pregio di durare parecchio, permettendo di ammortizzare l’investimento iniziale su più anni. Ma se le limitazioni intrinseche dell’hardware renderanno impossibile utilizzarli a lungo, diventeranno presto macchine ben poco interessanti per quei power user che guardano soprattutto alle prestazioni pure. Sono una nicchia, sono solo una piccola minoranza dei potenziali acquirenti delle nuove macchine, ma sono anche coloro che sviluppano le applicazioni senza le quali il MacBook Pro diventerebbe soltanto un bel soprammobile. O sono quelli che, con le loro esperienze di uso non convenzionale dei prodotti Apple, danno lustro e prestigio alla piattaforma.

Trascurarli (o dimenticarsene) è, a mio modesto parere, un grave errore strategico da parte di Apple.

  1. Grazie a Lux per la correzione. Non si dovrebbe mai aggiungere qualcosa all’ultimo momento, appena prima di andare a letto! 

Sabino Maggi
Pubblicato da Sabino Maggi Segui
Commenti

Aggiungi un commento