Blog
Risolvi il rallentamento di Minecraft: elimina i picchi di frame-time
Il problema dello stuttering in Minecraft deriva dalle pause nella garbage collection e dal caricamento dei chunk, non da un basso FPS. Riduci la pressione sulla memoria, ottimizza il caricamento dei chunk e smetti di allocare eccessivamente RAM.
Cosa significa realmente il "stuttering" in Minecraft?
Lo stuttering è un problema di frame-time, non di frame-rate. Il tuo FPS medio può attestarsi a 300 mentre il gioco si blocca per una frazione di secondo ogni pochi secondi. Il contatore sembra sano perché media le impennate. Ciò che senti è l'impennata stessa. Le due cause principali sono le pause della garbage collection e il caricamento dei chunk, e nessuna delle due viene risolta aumentando il numero di FPS.
Immagina un FPS costante di 120 rispetto a un FPS di 300 che scende a 20 per un singolo frame ogni volta che il collector si avvia. Il 120 risulta più fluido. I tuoi occhi seguono il frame peggiore, non la media. Quindi, l'obiettivo è rendere il frame peggiore meno problematico, e l'ordine in cui risolvi i problemi è importante.
| Ciò che senti | Ciò che sta realmente accadendo | Cosa lo causa |
|---|---|---|
| Un blocco ogni pochi secondi | Pausa della garbage collection | FerriteCore, ModernFix |
| Un rallentamento quando entri in un nuovo terreno | Generazione dei chunk sul thread principale | C2ME, Lithium |
| Stuttering peggiorato dopo un aumento della RAM | Heap troppo grande, scansioni GC più lunghe | Riduci l'allocazione |
| Micro-rallentamenti casuali | App in background o un disco inefficiente | Chiudi le app, controlla il disco |
Come posso fermare lo stuttering causato dalla garbage collection?
Riduci la pressione sulla memoria prima di tutto. La maggior parte dei micro-scatti è dovuta al garbage collector di Java che interrompe il mondo per recuperare memoria. Riduci la quantità di memoria che il gioco trattiene e tali interruzioni diventeranno sia più brevi che più rare. Due mod fanno il lavoro pesante. FerriteCore deduplica e comprime i dati che Minecraft mantiene in memoria, e ModernFix elimina allocazioni e sprechi a runtime.
La logica è chiara. Il garbage collector deve interrompere il gioco solo quando c'è abbastanza spazzatura da pulire. Dagli meno da raccogliere e ti interromperà meno spesso. FerriteCore da solo può ridurre drasticamente l'impronta della heap, motivo per cui si trova in cima a ogni seria soluzione per lo stutter.
Ferrite Core
Comprime i dati che Minecraft mantiene nella RAM. Un'impronta più piccola significa pause GC più brevi e rare.
ModernFix
Ottimizza le allocazioni e riduce il bloat dei tempi di caricamento. Si integra perfettamente con FerriteCore.
C2ME
Distribuisce la generazione di blocchi su più thread della CPU per evitare rallentamenti nella generazione di nuovi terreni.
Litio
Rende la simulazione del mondo più economica, così il gioco rimane fluido mentre ti muovi e combatti.
Come posso risolvere i rallentamenti dovuti al caricamento a blocchi?
Il sussulto che senti quando corri in un nuovo ambiente è causato dalla generazione dei blocchi che blocca il thread principale. C2ME distribuisce il lavoro su più core della tua CPU, in modo che il mondo si costruisca davanti a te invece di doverti raggiungere. Abbinalo a Lithium, che riduce il costo per tick delle entità, dell'IA dei mob e della fisica, in modo che la simulazione non rimanga mai indietro.
Questi due dividono il lavoro. C2ME gestisce i blocchi nuovi. Lithium mantiene il mondo esistente economico da far funzionare. Insieme trasformano una corsa in un mondo aperto da un'andatura a singhiozzo in qualcosa che mantiene il suo ritmo. È qui che noti di più la differenza, nel gioco veloce. Se ti interessa un movimento fluido sotto pressione, consulta come ottenere FPS stabili per il PvP.
Perché più RAM peggiora lo stuttering?
Perché un heap più grande richiede più tempo per essere pulito. Quando dai a Java più memoria, ogni ciclo di garbage collection ha più terreno da coprire, quindi la pausa che blocca il tuo frame diventa più lunga, non più corta. Le persone aumentano l'allocazione aspettandosi fluidità e ottengono l'effetto opposto. Se il tuo stutter è iniziato o è peggiorato subito dopo un aumento della RAM, hai trovato il colpevole.
Per la stessa ragione, installare un sacco di mod senza prima ridurre la memoria è una trappola. Procurati FerriteCore e ModernFix prima di toccare il cursore di allocazione. Se la RAM è il problema specifico, i migliori mod per ridurre l'utilizzo della RAM approfondiscono l'argomento.
Qual è l'ordine giusto per risolvere questo problema?
Installa la coppia di memoria
Aggiungi FerriteCore e ModernFix su Fabric. Questo riduce l'heap e qui scompare la maggior parte degli stutter.
Aggiungi il blocco e la coppia di spunte
Installa C2ME e Lithium. Nuovi terreni evitano gli inceppamenti e la simulazione rimane economica.
Ottimizza la tua RAM
Abbassa l'allocazione a 4-6 GB se è impostata più in alto. Prova in un'area trafficata, non in un mondo piatto e nuovo.
Pulisci e riordina
Imposta un frame cap leggermente al di sotto del tuo refresh rate, oppure abilita VSync, e chiudi le applicazioni in background che competono per la tua CPU.
La rapida lista di controllo prima di incolpare i mod
Alcune cause non legate ai mod si nascondono qui, e vale la pena escluderle prima di reinstallare qualsiasi cosa.
- Un limite al frame rate o VSync. Un ritmo costante è preferibile a picchi irregolari, anche se il numero massimo diminuisce.
- Applicazioni in background. Browser, client vocali e attività di aggiornamento sottraggono risorse alla CPU e causano rallentamenti durante il gioco.
- Il tuo disco rigido. Un disco pieno o danneggiato presenta rallentamenti durante la lettura dei blocchi. Libera spazio e verifica lo stato del disco.
- Shader. Un pacchetto di shader pesante aggiunge un proprio costo in termini di tempo di rendering. Prova a disattivarlo per isolare la causa.
È qui che una configurazione ottimizzata a mano si fa valere. Terminus spedisce il suo stack di prestazioni già cablato e il suo profilo di lancio pre-dimensionato, così eviti il labirinto delle flag JVM e ti metti subito a suonare.
FAQ
Un elevato FPS medio nasconde il problema. Una singola pausa nella garbage collection o un rallentamento nel caricamento dei chunk blocca il frame per una frazione di secondo, indipendentemente dalla velocità con cui vengono renderizzati gli altri frame. Risolvi i problemi di memoria e di caricamento dei chunk, non il contatore dei frame.
FerriteCore per il lato della memoria e C2ME per il lato del caricamento a blocchi. Il litio supporta entrambi rendendo la simulazione del mondo più economica. Installa tutti e tre insieme, se possibile.
Di solito è il contrario. Una quantità maggiore di dati da elaborare comporta scansioni più lunghe per ogni ciclo di garbage collection, e quindi pause più lunghe. Se il problema degli stutter è peggiorato dopo aver aumentato la RAM, prova a riportare l'allocazione a 4-6 GB.
Spesso sì. Un frame rate stabile risulta più fluido rispetto a un numero elevato che presenta picchi. Imposta qualche frame al di sotto della frequenza di aggiornamento, oppure attiva VSync, e lascia che la costanza prevalga.
Prendi Terminus
Performance stack pre-tuned. No JVM flags to memorize.