(Disclaimer: non lavoro sui backend lato server, e non ho alcun IT operativo esperienza La mia risposta qui sotto è solo dalla teoria dell'architettura e non dall'esperienza.)
Se non sei sicuro di cosa fare, prova il seguente ordine di precedenza.
(I primi due passaggi non hanno nulla a che fare con GC, ma se questi due non sono presi in considerazione, parlare di ottimizzazione GC è inutile.)
ma per favore non seguire ciecamente; come ho detto, non ho esperienza in questo.
- Prima di tutto, dovresti trovare ed eliminare le perdite di memoria nella tua base di codice.
- Successivamente, dovresti identificare l'uso eccessivo della memoria nella tua base di codice e migliorarlo.
- Quindi, dovresti imparare i fondamenti di GC (che hai già realizzato).
- Una volta appresa, è necessario iniziare a monitorare quelle statistiche vitali, in tutti gli ambienti: sviluppo, test e produzione.
- Quando quelle statistiche vitali indicano che il tuo progetto potrebbe potenzialmente soffrire di un problema di GC, usa le tecniche apprese per isolare la causa e / o applica una o più attenuazioni per mantenere il problema sotto controllo.
Quali sono alcune delle cose che potrebbero essere regolate?
Solo alcuni esempi: scusa se i miei esempi sono sbagliati.
- Ottimizza l'hardware (dimensioni della RAM)
- Ottimizza il sistema operativo
- Sintonizza la JVM o GC
- Metti a punto il tuo progetto nel modo in cui utilizza (generando e mantenendo) oggetti di lunga vita, se tali oggetti rappresentano collettivamente una frazione significativa dell'utilizzo complessivo della memoria.