penso che sono in esecuzione in una perdita di memoria con una app espresso quando si collega un numero x di EventSource client ad esso. Dopo aver collegato i client e inviato loro x messaggi e disconnettendoli, l'app Express Express rilascia solo una piccola parte dell'heap/RSS allocato.Perdita di memoria in Express.js con EventSource
Per confermare questo ho salvato un Heapdump all'avvio del server e uno dopo aver collegato 7000 client ad esso e l'invio di messaggi x a ciascun client. Ho aspettato un po 'di tempo per dare al GC la possibilità di ripulire prima di prendere l'istantanea dell'heap.
Per confrontare queste istantanee di heap, le ho caricate nella vista Profilo Strumenti di sviluppo Chrome e ho scelto la modalità "Confronto".
Le mie domande sono:
1) Come interpretare questi numeri? (per riferimento vedere il mucchio allegata un'istantanea screenshot.)
2) Per esempio Sembra che il Socket oggetti non quasi senza alcun oggetto a tutti, è corretto?
3) Potete darmi altri suggerimenti per indagare il problema?
Se qualcuno è interessato nel codice che uso per provarlo, è qui: [Server & Codice Cliente] (https: //gist.github .com/roundrobin/a6e3d38cb24fcc112418) – BausTheBig
non è una perdita di memoria, è stato aggiunto un riferimento a loro e non rimosso, non si libera la memoria mentre è ancora possibile accedervi. 'ALL_CLIENTS' sta aggiungendo roba ad esso ora che li stai chiudendo non rimossi da' ALL_CLIENTS' quindi c'è ancora un riferimento ad essi una volta che hai finito e connessione chiamata chiusa 'cancella ALL_CLIENT [chiave]' dove la chiave è Chiave del client corrente se si dispone di un riferimento non è possibile rimuovere i dati in là altri saggi potreste potenzialmente avere un riferimento ad un'altra memoria di app se saltato lì –