Perché i browser web usano così tanta RAM?
Sono stato uno sviluppatore di estensioni per browser quando tutto è iniziato. La gente diceva: "Sposteremo ogni app sul web". Così gli sviluppatori di browser hanno iniziato a dare ai siti web sempre più risorse informatiche.
In quel momento si sono verificati due grandi problemi.
Uno era che i produttori di processori non erano in grado di capire come aumentare la velocità dei processori. Così hanno inventato il concetto di core. Un concetto in cui si hanno più processori più piccoli all'interno di uno solo. Più o meno.
Questo era un grosso problema. Ma per i browser era un problema perché operavano su un singolo processo. Quindi sono stati divisi in più processi, in modo da poter utilizzare tutti i core in modo efficace.
Ma questo workaround aveva un difetto. Ogni scheda del browser diventa fondamentalmente un'applicazione separata. E questo significa che ogni scheda ha un enorme numero di megabyte di memoria dello stesso core semplicemente duplicato.
Poi si verificò il problema successivo. Poiché i browser hanno iniziato a dare così tanto controllo sull'hardware, non c'era un modo semplice per condividere le stesse risorse. Si poteva pensare di dividere un po' di RAM. Ma era un serio problema di sicurezza che impediva l'hacking dei dati comuni del browser e l'accesso ai dati attraverso questo modo da altri processi. Nessuno voleva che un sito web fosse in grado di sbirciare su altri siti web che hanno aperto. E questo è solo un esempio di base dei rischi.
Così tutto è stato separato e duplicato. Oggi fondamentalmente parte della memoria è occupata da duplicati di esattamente le stesse risorse del browser.
Un altro problema che ha portato a ciò che vediamo oggi deriva non dall'architettura dell'hardware ma da come sono cambiate le parole degli sviluppatori.
Così fino a qualche anno fa, c'era un bel concetto di usare le risorse in modo saggio. Usare solo tanta memoria quanta ne serve. Usare tutta la potenza di elaborazione della CPU di cui si ha bisogno. Perché c'è una quantità limitata di queste risorse che il vostro computer ha.
Quindi questo concetto è stato fondamentalmente ucciso.
Due motivi. In primo luogo, nessuno limita le risorse per i siti web, e in secondo luogo, l'attuale generazione di sviluppatori non se ne preoccupa più.
Oggi lo sviluppo web è una corsa veloce dove non c'è posto per l'ottimizzazione. Fondamentalmente quando si apre un sito web il computer carica tonnellate di codice, dati che non vengono mai utilizzati. Uno sviluppatore ha bisogno di una semplice funzione ma usa una libreria che è 1000 volte più potente ma usa anche 1000 volte più risorse di vario tipo.
Così tutti noi paghiamo il prezzo di costringere le applicazioni web ad essere sviluppate velocemente. Meno lavoro per lo sviluppatore = costo di sviluppo inferiore = sviluppo più veloce. Ma anche = bisogna comprare più memoria, un processore migliore, pagare internet più veloce, ecc. Spesso senza assolutamente alcun guadagno, perché tutte le risorse sono prosciugate da app web sempre più pigre.
Gli sviluppatori web si aspettano che tu abbia molta memoria e una CPU veloce per gestire le loro app. Altrimenti, si va a . Alcuni dicono anche per spiegarsi, la memoria è economica. Forse per loro è così. Ma non per tutti, soprattutto se si considerano le regioni più povere del mondo e le persone che non hanno un lavoro o hanno un reddito basso.
In passato, lo stesso problema si verificava con i videogiochi. Dovevi sempre comprare un nuovo PC per giocare agli ultimi giochi. E ad un certo punto la gente era così stufa che ha smesso. I giochi che hanno avuto più successo sono stati ottimizzati per funzionare su macchine più vecchie, come Starcraft o Quake. Questi giochi sono esempi di fine arte dell'ottimizzazione.
Speriamo che la pigrizia degli sviluppatori web si fermi e che qualcuno rompa questo ciclo folle di consumare ogni bit di memoria e ciclo di CPU.
Ma finché questo non accade tutto quello che possiamo fare è aspettare. Inoltre, forse, in qualche momento gli sviluppatori di browser limiteranno le risorse delle applicazioni web per motivare le persone a fare qualche sforzo per usare la potenza del computer in modo più saggio. Oppure è semplicemente come dovrebbe essere in primo luogo e dobbiamo superarlo.
Per favore, votate e seguitemi perché la tecnologia è forte :)
Articoli simili
- Perché le installazioni di Node.js usano così tanta RAM?
- Perché i Chromebook hanno così tanta RAM (16GB) quando molti portatili Windows hanno ancora 4GB di RAM?
- Il mio portatile ha 32GB di RAM ma Chrome usa oltre 15GB di memoria, come mai Chrome usa così tanta memoria e come posso ridurre il suo consumo?
- Perché il mio Macbook si surriscalda e usa così tanta CPU ed energia quando è su YouTube?