Benchmark della Memoria
Misura l'allocazione di typed-array e il throughput di lettura/scrittura nel tuo browser, e vedi quali dati di memoria il tuo browser espone effettivamente.
Browser-reported memory
navigator.deviceMemory
Not exposed by this browser
JS heap (performance.memory)
Not exposed by this browser
Chromium browsers round deviceMemory to one of 0.25, 0.5, 1, 2, 4 or 8 GB, and it can be lower than your real RAM. Firefox and Safari do not expose either figure, which is normal and not a bug.
Throughput benchmark
Allocates and reads/writes typed arrays in JavaScript to estimate practical memory speed.
Guida rapida: come usare Benchmark Memoria
Ci vuole meno di un minuto- 1Chiudi le schede che consumano molta memoria in modo che il browser possa allocare liberamente.
- 2Esegui il benchmark e lascia che ogni fase finisca.
- 3Controlla separatamente l'allocazione, la produttività di lettura e scrittura.
- 4Il limite di heap riportato è un limite del browser, non la tua RAM totale.
Panoramica
La velocità della memoria raramente riceve l'attenzione che riceve la velocità di clock della CPU o il modello della GPU, ma influisce silenziosamente su tutto ciò che un computer fa. Ogni istruzione eseguita da un processore alla fine deve leggere o scrivere dati da qualche parte, e se quei dati devono viaggiare attraverso una memoria lenta, anche una CPU veloce finisce per aspettare. Questo test ti offre una panoramica basata su browser di quanto velocemente JavaScript può allocare memoria e spostare dati al suo interno, oltre a qualsiasi dato di memoria che il tuo browser specifico sia disposto a esporre.
Il benchmark funziona con array tipizzati, in particolare buffer Float64Array, che sono l'equivalente più vicino di JavaScript ai blocchi di memoria raw. Misura quattro operazioni distinte: quanto velocemente possono essere allocati nuovi array, quanto velocemente i dati possono essere scritti in un array in ordine, quanto velocemente gli stessi dati possono essere letti in ordine, e come queste velocità cambiano quando il pattern di accesso alla memoria è casuale invece che sequenziale.
Accanto ai numeri di throughput, questa pagina legge due valori esposti dal browser quando disponibili: navigator.deviceMemory, una stima approssimativa della RAM totale del sistema, e performance.memory, che riporta la dimensione attuale e massima dell'heap JavaScript nei browser basati su Chromium. Entrambi presentano limitazioni reali che vale la pena comprendere prima di trarre conclusioni.
Come leggere i risultati
Throughput di allocazione
Questo misura quanti megabyte al secondo il tuo browser può ricavare dalla memoria per nuovi array. È influenzato dal gestore della memoria e dal garbage collector del motore JavaScript tanto quanto dall'hardware raw, quindi le differenze qui spesso dicono più sul browser che sui chip RAM stessi.
Accesso sequenziale vs casuale
I numeri di lettura e scrittura sequenziali dovrebbero essere notevolmente superiori ai numeri di lettura e scrittura casuali, e questo divario è normale e atteso su ogni computer a causa del funzionamento delle cache della CPU. Un divario molto piccolo tra velocità sequenziali e casuali può in realtà indicare una cache del processore molto veloce rispetto alla dimensione della memoria, non un problema.
Valori di deviceMemory e heap
Considera navigator.deviceMemory come un indicatore di fascia approssimativo piuttosto che un dato esatto della RAM, poiché Chromium lo limita a 8GB indipendentemente dalla quantità di RAM effettivamente installata. I numeri dell'heap JS riflettono ciò che è allocato a questa specifica scheda del browser in questo momento, e cresceranno man mano che la pagina e i suoi strumenti vengono eseguiti, il che è un comportamento atteso piuttosto che una perdita di memoria.
Risoluzione dei problemi
I valori di deviceMemory o heap mostrano 'Non esposto'
Questo è previsto in Firefox e Safari, che non implementano affatto queste API per motivi di privacy. Passa a Chrome, Edge, Brave o un altro browser basato su Chromium se hai bisogno di vedere questi numeri.
I numeri di throughput sembrano insolitamente bassi
Chiudi altre schede che consumano molta memoria, specialmente quelle con immagini grandi, video o molte schede aperte dallo stesso sito, poiché competono per lo stesso spazio heap JavaScript e RAM fisica. Riavviare completamente il browser, piuttosto che solo chiudere le schede, libera la frammentazione di memoria accumulata che può anche rallentare le cose.
La scheda del browser si è bloccata o è diventata non responsiva durante il test
Ciò può accadere su dispositivi con pochissima RAM libera, poiché il benchmark necessita di alcune centinaia di megabyte di margine per eseguire i suoi array tipizzati. Chiudi altre applicazioni e schede per liberare memoria, quindi riprova con meno elementi in esecuzione contemporaneamente.
Cosa i browser nascondono deliberatamente, e perché
Informazioni dettagliate sulla memoria possono essere utilizzate per identificare un dispositivo, poiché le quantità esatte di RAM combinate con altri segnali restringono il modello specifico di dispositivo che una persona sta utilizzando. Per questo motivo, nessun browser espone la RAM esatta in gigabyte, la velocità esatta della memoria in MHz o la configurazione del canale di memoria. Chrome scende a compromessi arrotondando deviceMemory in sei grandi categorie, mentre Firefox e Safari rimuovono completamente l'API piuttosto che rischiare che venga utilizzata per il tracciamento.
Ciò significa che un test di memoria basato su browser non può mai sostituire completamente strumenti come Task Manager, Activity Monitor o il pannello di informazioni di sistema di un produttore per controllare la RAM installata esatta. A cosa serve invece è misurare il throughput pratico e confrontarlo tra browser o dopo una modifica hardware, come l'aggiunta di un modulo RAM o l'aggiornamento a un kit di memoria più veloce.
Quando la memoria è effettivamente il tuo collo di bottiglia
Se il tuo computer sembra lento in particolare quando hai molte schede del browser o applicazioni aperte contemporaneamente, e si velocizza dopo averne chiuse alcune, questo è un classico segno che la capacità della memoria, non la velocità, è il vincolo. Se invece tutto sembra lento anche con poche cose aperte, e i numeri di throughput di questo benchmark sono drasticamente inferiori a ciò che è tipico per hardware simile, ciò indica più un problema di velocità o configurazione della memoria, come la RAM che funziona in una modalità più lenta di quella per cui è classificata.
- Controlla la quantità e la velocità della RAM installata nel pannello delle informazioni di sistema del tuo sistema operativo, non solo in questo test del browser.
- Confronta i numeri di questo test prima e dopo aver chiuso le applicazioni in background.
- Abbina questo test ai benchmark della CPU e dello storage su questo sito per escludere altri colli di bottiglia.
Domande frequenti
Un sito web può effettivamente misurare la velocità della mia RAM?
Un sito web può misurare la velocità con cui JavaScript può allocare e accedere agli array tipizzati, il che è correlato alla velocità reale della memoria ma include anche l'overhead del motore JavaScript, del garbage collector e del comportamento della cache della CPU. È una misura pratica utile, non un test di larghezza di banda della memoria di livello laboratorio come quello che si otterrebbe da un software diagnostico hardware dedicato.
Perché navigator.deviceMemory mostra un numero inferiore alla mia RAM effettiva?
I browser basati su Chromium arrotondano e limitano deliberatamente questo valore a uno di un piccolo insieme di numeri (0,25, 0,5, 1, 2, 4 o 8 GB) come misura di privacy, quindi un sistema con 32 GB di RAM riporterà comunque un massimo di 8 GB. Questo è intenzionale e non è un segno di un problema.
Perché Firefox o Safari non mostrano affatto deviceMemory o performance.memory?
Entrambi i browser scelgono di non implementare queste API, principalmente per timori che informazioni dettagliate sulla memoria possano essere utilizzate per il fingerprinting o per tracciare gli utenti tra i siti. Se hai bisogno di queste informazioni, Chrome, Edge o un altro browser basato su Chromium le mostreranno.
Qual è una velocità di lettura/scrittura normale da vedere in questo test?
Le velocità di lettura e scrittura sequenziali nell'ordine di poche migliaia di MB/s sono comuni sull'hardware moderno, poiché questo misura l'accesso all'array on-heap piuttosto che direttamente la larghezza di banda del chip RAM fisico. Le velocità di accesso casuale sono tipicamente notevolmente inferiori rispetto alle velocità sequenziali a causa dei cache miss della CPU, il che è previsto e non è un difetto.
Perché l'accesso casuale è più lento dell'accesso sequenziale?
Le CPU leggono la memoria in blocchi della dimensione della cache line e prevedono bene i modelli sequenziali, quindi gli indirizzi di memoria consecutivi si caricano rapidamente dalla cache. Gli indirizzi sparsi casualmente vanificano tale previsione e forzano più accessi alla memoria principale più lenta, il che è una proprietà fondamentale delle gerarchie di memoria del computer, non una limitazione del browser.
Chiudere altre schede del browser migliora il mio punteggio?
Sì, specialmente le schede che contengono già grandi quantità di dati in memoria, poiché competono per la stessa RAM fisica e possono forzare pause di garbage collection durante il test. Chiudere le schede non correlate prima di eseguire il benchmark produce un risultato più pulito e ripetibile.
Cosa significa effettivamente performance.memory.jsHeapSizeLimit?
È la dimensione massima dell'heap che il motore JavaScript consentirà per questa pagina prima di iniziare a raccogliere aggressivamente la spazzatura o a generare errori di memoria insufficiente, non la RAM totale nel tuo sistema. Tipicamente è di pochi gigabyte anche su macchine con molta più RAM fisica, poiché è un limite di sicurezza per scheda.
Il mio numero di throughput di allocazione sembra incoerente tra le esecuzioni. Perché?
Il timing della garbage collection non è perfettamente prevedibile, quindi se un ciclo di raccolta si verifica durante il loop di allocazione temporizzato, quell'esecuzione mostrerà un throughput inferiore. Eseguire il benchmark due o tre volte e considerare il risultato tipico piuttosto che un singolo valore anomalo fornisce un quadro più affidabile.
Questo test può dirmi se la mia RAM è difettosa?
Non in modo affidabile. Questo benchmark misura il throughput e le tendenze di velocità, ma il rilevamento di RAM difettosa richiede strumenti di test esaurienti di pattern di bit come memtest86 che funzionano al di fuori del browser e controllano direttamente ogni indirizzo di memoria. Se sospetti un difetto hardware, usa uno strumento di diagnostica della memoria dedicato.
Più RAM significa sempre un punteggio migliore qui?
Non direttamente. Questo test alloca una quantità fissa e modesta di memoria ben entro ciò che quasi tutti i dispositivi moderni hanno a disposizione, quindi misura la velocità di accesso piuttosto che la capacità totale. Un dispositivo con meno RAM totale ma chip di memoria più veloci può ottenere un punteggio migliore di uno con più RAM ma chip più lenti.