Categorie
Domande di Internet

perché i browser Web utilizzano così tanta RAM, mentre la dimensione media di un'intera pagina Web è di 2 MB?

Bentornati ad un'altra sorprendente edizione delle domande di cultura generale!

2708 utenti della rete avevano questa curiosità: Spiegami: perché i browser web usano così tanta ram, mentre la dimensione media di un'intera pagina web è di 2mb?

Da quello che ho capito, si potrebbero memorizzare nella cache 100 pagine Web (ovviamente, 2 MB è la media, ma ce ne sono molto più piccole e molto più grandi di così) in circa 200 MB. 1 GB potrebbe memorizzare nella cache letteralmente 500 pagine web.

Come mai allora i browser Web utilizzano così tanta RAM?

Ed ecco le risposte:

Per dare una risposta leggermente diversa, sottolineerò anche che oltre al fatto “html è una ricetta”, i browser moderni hanno un sovraccarico dovuto al fatto che funzionano essenzialmente come sandbox o hypervisor per ogni singola scheda hai aperto. C'è molta sicurezza nel tentativo di impedire ai siti Web dannosi di essere in grado di vedere qualcosa di più della loro minuscola sandbox.

Un browser web è per una pagina web ciò che un cuoco è per una ricetta.

Anche se la ricetta tiene su un cartoncino 4”×6” e potresti riempirne un centinaio in una piccola scatola, il cuoco ha bisogno di una cucina intera, con dispensa, frigorifero, piano cottura, forno, utensili, pentole, padelle…, e deve usare una cucina diversa per ogni ricetta.

Inoltre, può sembrare controintuitivo, ma a differenza, ad esempio, dello spazio su disco, la RAM è pensata per essere utilizzata il più possibile

Non ottieni un vantaggio nel cancellare la ram per avere “memoria disponibile”, più probabilmente perdi l'efficienza scaricando la ram inutilmente

Quindi i programmi (non solo i browser) memorizzano nella cache i loro processi nella ram poiché possono recuperarli in modo molto più efficiente rispetto al ricaricamento dal disco. E il sistema scaricherà la cache inutilizzata quando altri processi ne hanno bisogno

Infine, l'utilizzo della RAM non è la memorizzazione nella cache delle pagine Web, ma la memoria utilizzata dal browser per funzionare (rendering, analisi, spostamento di elementi, codice, ecc.)

Gli script HTML e JS potrebbero essere solo pochi megabyte, ma quelle sono solo istruzioni che devono essere prima convertite in qualcosa di utile. L'HTML deve creare il Document Object Model e il Javascript viene compilato in codice macchina eseguibile. Il codice JS recupererà anche i dati da un endpoint e creerà più oggetti in memoria.

Se usi gli strumenti di sviluppo del tuo browser e dai un'occhiata alla memoria dell'heap, vedrai che questo thread vuoto utilizza già circa 100 MB in totale.

Quando apri una pagina web, è come aprire un libro e mettere ogni pagina su un tavolo. Anche se il libro non è molto grande, hai bisogno di un grande tavolo per distribuire ogni singola pagina in modo da poter vedere tutto chiaramente. Le pagine Web hanno molte cose in corso contemporaneamente: immagini, video, animazioni, cose html5, per non parlare del fatto che devono ricordare le cose su cui hai fatto clic in passato e forse cose come ciò che hai inviato in un modulo. TUTTE queste cose hanno bisogno di un certo grado di memoria per funzionare correttamente, proprio come hai bisogno di spazio su un tavolo per stendere le pagine di quel libro.

Quindi, anche se una singola pagina Web non è grande, ha bisogno di memoria aggiuntiva per gestire tutte le cose che possono accadere su quella pagina e per assicurarsi che tutto funzioni senza intoppi.

Modifica: molto codice scritto oggi viene eseguito utilizzando il codice esistente, la maggior parte del quale non viene utilizzato. Ci sono ancora molti rifiuti. Ti incoraggio a guardare il “problema da 30 milioni di righe” su YouTube quando sarai più grande.