2012-11-10 4 views
16

Sto eseguendo alcuni test di utilizzo della memoria in un progetto WebGL che ho. Se avvio la pagina su Google Chrome e faccio uno snapshot dell'heap nella scheda Profili di Developers Tool, dirò che la mia pagina contiene 7,5 MB.Snapshot di Google Chrome: perché non mostra tutta la memoria allocata?

Il problema è che se guardo in Task Manager, il valore reale che sta usando è quasi 1 GB! Ci si aspetta, dal momento che sto forzando la pagina ad avere migliaia di oggetti, ma la domanda è: perché Chrome mi mostra che sto usando solo 7,5 MB?

+0

I processi di Chrome sono distribuiti tra plug-in, schede e il servizio principale di Chrome. Di cosa vuoi esattamente un'istantanea? – TheZ

+0

@TheZ Quello che voglio veramente sapere è la quantità di memoria utilizzata dalla mia pagina. –

+0

Dovresti presentare un bug su http://crbug.com – gman

risposta

12

aggiornamento

c'era un'istantanea della memoria nativa che era in grado di mostrare il grafico di memoria nativa. Purtroppo lo abbiamo rimosso perché era un pezzo di codice fragile. Richiedeva strumentazione non banale in centinaia di classi e influiva sulla dimensione binaria. Spero che lo reimplementeremo più tardi.

era

ci vuole una fotografia istantanea del Javascript mucchio. Tutti gli oggetti javascript utilizzano 7.5mb. Questa dimensione non include immagini, tele, file audio, dati plug-in, ecc.

C'è un'istantanea di memoria nativa in DevTools. Conta la memoria non javascript utilizzata dal processo di rendering, ma questa è una funzione sperimentale.

È necessario abilitare la funzione sperimentale DevTools in chrome://flags, riavviare il browser, abilitare la funzionalità sperimentale Native Memory Profiler nel pannello delle impostazioni di DevTools e riaprire DevTools.

Dopo tutti questi passaggi, sarà possibile scattare un'istantanea di memoria nativa nel pannello di Profiler. Non tutti i blocchi di memoria nell'heap della memoria nativa vengono conteggiati, ma ci stiamo lavorando.

Utilizzare Canary version of Chrome. Si aggiorna ogni giorno e funziona parallelamente alle altre versioni di Chrome.

Se la tua pagina mangia gigabyte di memoria e ha una barra "Altro" di grandi dimensioni, oltre il 10% -20%, invia una mail al riguardo allo Google Chrome Developer Tools Foums.

+0

Sfortunatamente google ha rimosso la funzione di snapshot della memoria nativa dagli strumenti di sviluppo sperimentali. Non so perché. Ma significa che questa risposta non è più valida:/ – UpTheCreek

+0

c'era un'istantanea di memoria nativa che era in grado di mostrarti il ​​grafico della memoria nativa. Purtroppo l'abbiamo rimosso perché era un pezzo di codice fragile. Richiedeva strumentazione non banale in centinaia di classi e influiva sulla dimensione binaria. Spero che lo reimplementeremo più tardi. – loislo

+0

Grazie per l'aggiornamento: sembra che non possa più assegnare il premio, ma avere un +1! – UpTheCreek

-1

È ancora possibile scattare istantanee sotto la scheda del profilo e fare clic su Cattura istantanea testa che fornisce statistiche sull'utilizzo della memoria in profondità.

+0

Gli shapshot forniscono solo una vista dell'heap. Come indica la domanda, il problema è analizzare l'utilizzo della memoria mostrato nel Task Manager di Chrome, ma che non viene visualizzato nell'heap. – UpTheCreek