Sono confuso poiché la mia applicazione perde memoria. È un server TCP che elabora centinaia di migliaia di pacchetti al minuto. Ho controllato il codice, l'ho migliorato e profilato la memoria.node.js v8 la raccolta di dati inutili non sembra attivare
Tutto sembra a posto, testare localmente con poco traffico in realtà mostra che gc rilascia correttamente la memoria. Ma quando sul server di traffico pesante dal vivo non è così.
Quindi, ho provato a utilizzare l'opzione expose-gc
e ho aggiunto il gc forzato a ogni disconnessione e ora ho scoperto che la memoria non perde più o che è uscita ogni perdita?
Quindi, la mia conclusione è che il GC non si è attivato. Il mio server ha 3 GB di memoria e l'applicazione in poche ore arriva a mangiare 2,8 GB di quello.
Ora con il gc forzato l'applicazione non perde più. Mantiene circa 200 MB di memoria.
Quindi, la mia domanda, perché non è stato attivato il gc?
Hai mai trovato una soluzione? Sto avendo lo stesso problema T_T –
@MarsZhu scusate, ho rinunciato a Node, e ho usato Go invece, la migliore decisione di sempre. – majidarif