Odróżnij opóźnienie sieci od pracy serwera
Wysoki ping jednego gracza nie dowodzi przeciążenia ticków. Dla typowego celu 20 TPS budżet pojedynczego ticka to około 50 ms. Sprawdzaj MSPT i jego rozkład, liczbę graczy, generowanie terenu oraz moment pojawienia się przycięć. Zapisz wersję silnika, Javy i pluginów, aby wynik dało się porównać później.
Zbierz profil w odpowiednim momencie
Sprawdź dostępność spark w używanym wydaniu serwera. Polecenia i uprawnienia mogą zależeć od wersji. W konsoli Paper zacznij od pomocy, a następnie wykonaj krótki profil podczas rzeczywistego problemu.
spark profiler --help
spark profiler start --timeout 120W czacie zwykle potrzebny jest początkowy ukośnik. Wygenerowany raport może zawierać informacje o środowisku i pluginach — sprawdź je przed publicznym udostępnieniem. Profil pustego serwera nie opisuje obciążenia podczas wydarzenia z graczami.
Czytaj wynik jako ścieżkę wykonania
Sprawdź koszt wątku głównego i to, jakie wywołania zajmują czas. Nazwa pluginu obecna w drzewie nie oznacza automatycznie, że cały koszt jest jego winą. Rozróżnij wykonywanie kodu, generowanie chunków, operacje dyskowe, zbieranie pamięci i oczekiwanie. Porównuj podobne przedziały czasu przy podobnej liczbie graczy.
Wprowadź jedną zmianę i powtórz pomiar
Jeżeli problem wiąże się z eksploracją, rozważ kontrolę generowania terenu i dystansów. Jeżeli z konkretną mechaniką lub pluginem, odtwórz go na kopii testowej. Nie wyłączaj losowo mechanik ani wszystkich zabezpieczeń na produkcji. Po zmianie porównaj MSPT i zachowanie gry, nie tylko pojedynczy odczyt TPS.
- Nie przydzielaj całej pamięci hosta do sterty Javy.
- Nie zakładaj, że dłuższa lista flag JVM zawsze pomaga.
- Zachowaj konfigurację sprzed testu i opisz, co dokładnie zmieniono.
Źródła i dokumentacja
Odnośniki do źródeł pozwalają sprawdzić daty, dostępność oraz pełny kontekst informacji.