Notizie con etichetta “Quantum”

Firefox nell’era Quantum: utilizzo della memoria

Questa è la traduzione dell’articolo Firefox Memory Usage in the Quantum Era pubblicato sul blog di Eric Rahm. Per ulteriori informazioni sulle tecniche e gli strumenti adottati fare riferimento all’articolo precedente sul blog di Eric Rahm. Traduzione a cura di Sav22999.

La prossima versione di Firefox, la numero 57, punta soprattutto sulle prestazioni. Quantum ha influenzato molti aspetti di Firefox, ma non abbiamo ancora affrontato l’argomento dell’uso di memoria, che spesso viene messo in secondo piano per concentrarsi sulla ricerca di prestazioni elevate. Da quando il progetto AWSY è stato incorporato nell’infrastruttura del codice Mozilla, è più facile monitorare l’utilizzo della memoria e le regressioni anche su rami di sviluppo separati. Il team di sviluppo del nuovo motore per i CSS, Stylo, ha fatto ampio uso di questa funzione e i risultati sono evidenti. Al settimo giorno abbiamo attivato AWSY come impostazione predefinita per il progetto Stylo. A partire dal momento dell’attivazione, è possibile notare nel grafico una regressione significativa ma, al sedicesimo giorno, era quasi completamente scomparsa:

Utilizzo della memoria in Stylo

Con questo speriamo di averti convinto sull’impegno profuso per il miglioramento delle prestazioni, adesso però vediamo come Firefox se la cava a livello di consumo di memoria rispetto agli altri browser.

La metodologia utilizzata per il secondo ciclo di test è stata la stessa utilizzata in precedenza: utilizzando il codice del progetto ATSY abbiamo aperto una trentina di pagine nei vari browser e misurato l’utilizzo di memoria dei processi avviati per gestire tali operazioni.

I risultati

Utilizzo della memoria dei web browser in tutti i sistemi operativi

Edge è il browser che consuma più memoria su Windows, Chrome lo segue a ruota con un utilizzo che è 1,4 volte superiore a quello di Firefox sui sistemi Windows a 64-bit e quasi il doppio sui sistemi Linux. Per ciò che riguarda i sistemi macOS, stando almeno ai dati delle ultime misurazioni effettuate, Safari è al momento il browser che utilizza più memoria e Chrome e Firefox sono più o meno sullo stesso livello.

Complessivamente sono abbastanza soddisfatto per i risultati raggiunti, ora che la grande spinta per migliorare le prestazioni è venuta meno, vorrei vedere maggior lavoro sulla diminuzione del consumo di memoria in modo da poter iniziare ad aumentare il numero di processi per la gestione dei contenuti. Inoltre vorrei approfondire il comportamento su macOS, considerato che rappresenta la nostra regressione principale.

I browser web inclusi nel test sono Edge 38 su Windows 10, Chrome Beta 62 su tutte le piattaforme, Firefox Beta 57 su tutte le piattaforme e Safari Technology Preview 40 su macOS 10.12.6.

I test su Safari sono stati effettuati una seconda volta manualmente perché, probabilmente a causa delle modifiche negli ultimi aggiornamenti del browser, utilizzando ATSY le pagine venivano caricate tutte in un unico processo.


Le novità di Firefox 57

Durante quest’ultimo anno, Mozilla ha rivoluzionato molte cose in Firefox, anche se probabilmente non te ne sei accorto. Uno dei progetto principali si chiama Quantum, e porta in dote al browser un nuovo motore già disponibile in alcune sue componenti dalla versione 53. Molti ingegneri in Mozilla hanno lavorato per riscrivere, ottimizzare, rendere asincrone diverse componenti del browser.

Una grande quantità di novità

Finalmente ora Firefox è multi processo, una delle grandi novità che ha richiesto diversi anni di sviluppo e test su più sistemi e installazioni prima di poter essere resa disponibile a tutti gli utenti. Uno dei motivi per cui i componenti aggiuntivi realizzati con il vecchio framework non saranno più compatibili con Firefox 57 è proprio dovuto all’introduzione di questa nuova tecnologia.

Firefox, già dalla versione 48, permette l’installazione di componenti aggiuntivi scritti con un nuovo linguaggio, il Rust, pesantemente sfruttato in componenti importanti dedicati alla grafica al rendering.

Include migliorie per la sicurezza, in special modo dedicate alla sandbox, uno dei moduli più importanti di un browser dato che permette di far girare codice scaricato da Internet, isolandolo e proteggendo la postazione che si sta utilizzando (generalmente il proprio PC).

L’asincronia, ovvero la possibilità di eseguire più cose contemporaneamente senza dover aspettare la loro conclusione, porta con sé un’ulteriore nuova tecnologia per lo zoom delle pagine anch’esso completamente asincrono.

Si è pensato anche agli sviluppatori, infatti Firefox 57 proporrà un nuovo set di API per la realtà virtuale, le WebVR API, e un nuovo modo di creare componenti aggiuntivi, le già troppo odiate WebExtensions. Non si può non menzionare anche il supporto per un nuovo linguaggio web già compreso nel browser, WebAssembly.

Maggiore rapidità nei rilasci e nell’utilizzo

Tutti questi cambiamenti hanno portato a un rilascio di funzionalità più rapido, miglioramenti nella telemetria dell’uso di Firefox, introduzione del supporto per nuovi tipi di campi input, nuova interfaccia per le opzioni e l’abbandono della release Aurora, che servirà a saltare uno dei passaggi che fanno parte del rilascio di Firefox.

La velocità di rilascio non è però l’unica voce che risponde all’appello di Quantum, poiché già disponibile in un ormai superato Firefox 55, e ancora più presente e prepotente nella prossima versione 57. Già le prime versioni non stabili di Firefox 57 (quando era in versione Nightly) hanno battuto Google Chrome nel suo stesso benchmark (Speedometer v2).

Per altre statistiche e grafici riguardo lo stato attuale delle cose, puoi dare un’occhiata agli approfondimenti disponibili in questa pagina web. Alcuni dei miglioramenti presenti in quella pagina non saranno però già disponibili nella versione 57 di Firefox, visti i tempi richiesti per lo sviluppo, ma lo saranno certamente nelle versioni successive.

Il progetto Quantum è stato fondamentale per la riscrittura e identificazione dei vari colli di bottiglia presenti in Firefox, ed è a lui che è stata dedicata una newsletter settimanale, per tenere traccia di ogni modifica. A oggi ci sono ancora molti ticket aperti e in cerca di qualcuno in grado di contribuire.

Design

Il design in Firefox 57 è diverso dalle versioni precedenti, ciò è dovuto al progetto Photon, il quale ha portato alla riscrittura di molti elementi grafici, come le animazioni, utilizzando tecniche più veloci, sostituzione delle immagini scalari con immagini vettoriali e molto altro. Per vederlo in azione è sufficiente aprire –e giocare con– questa pagina e il manuale di design. Anche per Photon è disponibile una newsletter settimanale che racconta ogni sua novità, con l’ausilio di screenshot e altro materiale che, per chi utilizzava già la versione Nightly, ha potuto provare in tempo reale.

Anche gli strumenti per gli sviluppatori hanno subito uno svecchiamento, e sono “rivisitati” con l’aiuto di tecnologie web moderne. Se l’argomento ti interessa particolarmente, ti rimandiamo al Mozilla Developer Network.

Test Pilot e conclusioni

Per chi ancora non lo conoscesse, Test Pilot è il progetto (con relativo componente aggiuntivo da installare nel browser) che permette di provare in anteprima le funzionalità ancora in sviluppo, di fornire dati telemetrici in maniera anonima e di partecipare a dei sondaggi che permettono a Mozilla di capire in che direzione andare.

Una delle funzionalità più apprezzate è certamente quella che permette di catturare screenshot dei siti web che si stanno visitando, utilizzando direttamente Firefox, e di caricarli online con scadenza predefinita. Nato come progetto sperimentale, fa parte del set di novità della versione 57. Chi invece non sarà presente e rimarrà esclusivamente nella versione Nightly è Container, ovvero la possibilità di condividere specifiche sessioni di navigazioni tra gruppi di schede.

Ulteriore progetto in incubazione Test Pilot è Send, che permette di condividere dei file criptandoli e cancellandoli dopo un giorno o dopo un solo download, trovi qui maggiori informazioni.

Tutto questo lavoro non sarebbe stato possibile senza gli utenti e i volontari che si occupano di traduzione, supporto, segnalazione dei bug e promozione del prodotto.

Se vuoi unirti a noi puoi farlo in diversi modi, in base al tempo libero a tua disposizione. Puoi cominciare utilizzando Firefox Nightly, il quale riceve aggiornamenti quotidiani, così da provare nuove funzionalità prima che arrivino nella versione stabile, segnalando i problemi riscontrati via Bugzilla, Telegram o IRC. Il nostro consiglio è però quello che forniamo da sempre all’interno del nostro forum: se non sai cos’è un Profile Manager, se non effettui backup regolari dei tuoi dati e non sai come cavartela in caso di problemi o perdite dati, non scaricare una Nightly.

Lo staff di Mozilla Italia è presente sul forum ufficiale in lingua italiana, alcuni di noi sono reperibili anche sul forum internazionale, dove troverai anche diverse altre sezioni dedicate ai vari progetti collaterali, come Voice (dedicato alla raccolta di dati vocali per migliorare il riconoscimento vocale), o la nuova area pensata per gli sviluppatori di MDN.

Ti aspettiamo!


Questo articolo si basa sull’originale di Zbigniew Braniecki, disponibile all’indirizzo diary.braniecki.net/2017/09/01/all-hands-on-deck-how-you-can-use-your-skills-to-contribute-to-firefox-57-success

Revisione dell’articolo a cura di Giovanni Francesco Solone.