Zwykle identyfikowanie problemów wydajności oznacza wiercenie jednej z trzech kategorii: szybkość przetwarzania (komputacja), pamięć lub czas ładowania.
Roblox ma wiele narzędzi do identyfikacji problemów wydajności, niektóre z których są dostępne w klientach Roblox (i więc Studio) i niektóre z których są dostępne tylko w Studio. Gdy możesz bezpośrednio obserwować zachowanie klienta, musisz używać narzędzi do diagnozowania problemów serwera.
Narzędzia diagnozowe
Narzędzie | Opis | Lokalizacja | Skrót klawiatury | Środowisko |
Konsola Rozwiniętego Oprogramowania | Konsola z aktualnymi wiadomościami o błędach i szczegółowymi informacjami o pamięci, sieci i wykonywaniepamięci. Jest użyteczna do oglądania zużycia pamięci, statystyk zdrowia kluczowego serwera i statystyk wydajności skryptu. Aby uruchomić konsolę MicroProfiler'a klienta lub serwera. | Studio | F9 | Sesje na żywo, Studio testowanie |
MikroProfile | Narzędzie do debugowania, które pokazuje, ile czasu kalkulacyjnego jest zużywane na zadania w każdym klatce. Może generować raporty analityczne, pokazując dokładną rozkład czasu na poszczególne klatki, co ułatwia identyfikację problemu związanego z wydajnością. Możesz uruchomić profiler na klient lub serwerze, w zależności od tego, która strona ma problem. | W doświadczeniu | Ktrl Alt F6 ( ⌘ 1> ⌥1> 3> F63> ) | Sesje na żywo, Studio testowanie |
Bar liczby statystyk | Pasek narzędzi z podstawowymi statystykiwydajności, w tym zużycie pamięci, CPU, grafika, dane sieci wysłane i otrzymane i czas ping. | W doświadczeniu | Ctrl AltF7 ( ⌘ 0> ⌥0> 2> F72> ) | Sesje na żywo, Studio testowanie |
Statystyki debugowania | Warstwy z szczegółowymi informacjami wokół grafiki, fizyki, ruchu sieciowego i strzelanki FPS. | W doświadczeniu | Przesunięcie się F1 , Przesunięcie sięF2 , 1> Przesunięcie się 1> 3> F43> , 6> Przesunięcie się 6> 9> F59> | Sesje na żywo, Studio testowanie |
Panel Kluczowy Wydajności | Panel z agregatycznymi wykresami dla użytku pamięci klienta i serwera, użycia pamięci klienta, bicia serca serwera i stężeń spadku w czasie rzeczywistym. Jest to pomocne dla analizy wzorów oceniaćw ciągu czasu. Zobacz Monitorowanie wydajności. | Panel twórcy | Nie dotyczy | Sesje na żywo |
Komputacja na serwerze
Przepustnica serca na serwerze jest ograniczona do 60 FPS dla wszystkich doświadczeń, więc niższe wartości mogą sugerować problem z wydajnością. Aby sprawdzić przepustnicę serca na serwerze:
Z Konsolą Rozwoju - na stronie pracy serwera, rozwinię następ kroków i sprawdź wartość 2>Kroki na sekundę2>, która reprezentuje kroki serca swojego doświadczenia.
Z serwera MicroProfiler - Spójrz na długość każdego ramy, aby ustalić, czy niektóre są dłuższe niż 16.67 ms.
Kolejnym objawem uszkodzonego serca serwera jest zwiększona opóźnienie (zwykle znana jako ping). Im dłużej serwer potrzebuje na zakończenie swoich zadań za każdą ramę, tym dłużej potrzebuje na przetwarzanie danych sieci wysyłanych i otrzymywanych przez klientów. Aby sprawdzić średnią opóźnienie dla wszystkich graczy połączonych z serwerem,
Komputacja Klienta
Domyślna maksymalna liczba klatkach klienta wynosi 60 strzelanki FPS. Jnak użytkownicy mogą podnieść maksymalną liczbę klatkach do 240 strzelanki FPS.
Różnica w częstotliwości klatki może być duża między urządzeniami. Na przykład, wysokiej klasy PC może "znieść siłę" i tylko doświadczyć niewidocznej zmiany klatki. Jeśli testujesz na urządzeniach niższej półki, problemy są bardziej poważne i więc łatwiej je zauważyć.
Aby sprawdzić częstotliwość klatkowej swojego doświadczenia:
W klientach naciśnij ShiftF5, aby wyświetlić podsumowanie statystyk debugowania.
W Oglądaj zakładce Studio, wybierz Statystyki > Podsumowanie > 2>Deboguj2>, aby włączyć statystyki do debugowania.
Z MicroProfiler możesz sprawdzić grafikę, aby upewnić się, że klatka trwa dłużej niż 16,67 ms.
Pamięć
Są kilka sposobów na sprawdzenie użycia pamięci dla doświadczenia:
- Otwórz Konsolę Rozwoju i przełącz się na Pamięć tab. Ta taba daje podgląd na to, jak pamięć jest przydzielana. Użyj klienta, a nie Studio, aby uzyskać najbardziej dokładne czytania.
- Włącz Statystyki wydajności widok z menu ustawień w klienta, aby zobaczyć okładkę z całkowitym użyciem pamięci klienta.
Wysokie zużycie pamięci nie jest niezbędnie wskazujące na problem, ale kilka wskazań, że można potrzebować badać bardziej, to:
- Znaczny procent błędów klientów pokazanych w Panelu wydajności , szczególnie nagły uptick, który zgadza się z aktualizacja. Niektóre liczby błędów są oczekiwane, ale powinieneś zbadać, czy twoje wskaźniki błędów rosną powyżej 2-3%.
- Wystąpił błąd podczas testowania na urządzeniu, na którym chcesz, aby Twoja wersja wspierała.
- Twoja konsumpcja pamięci przekracza 3 GB.
Znaczna część zużycia pamięci na klienta pochodzi od zasobów, takich jak obrazy i siatki, załadowane w pamięci graficznej, aby mogły być renderowane. W Konsoli rozwoju możesz zobaczyć pamięć graficznego konsumowaną przez zasoby pod następującymi etykietami:
- GraphicsMeshParts - Graphics pamięci konsumowane przez sieci.
- Grafika teksturowa - Grafika pamięci konsumowana przez tekstury.
Czas ładowania
Nie są dostępne narzędzia do sprawdzania czasów ładowania, ale ponieważ nie wymagają one precyzji poziomu milisekundowego, to zwykle stopwatch jest wszystkim, co potrzebujesz, aby zrozumieć swoją obecną podstawę przepustowości i sprawdzić, czy zrobiłeś istotną poprawę. Możesz użyć krypt klienta w ReplicatedFirst, ab
local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- cztery miejsca dziesięciu dziesiątych
print("Game loaded in " .. roundedLoadTime .. " seconds.")
print("Number of instances loaded: " .. #game.Workspace:GetDescendants())
end)
Dla dodatkowego wglądu włącz Ustawienia Studio > Sieć > Drukuj dołączenie rozmiar, który drukuje największe 20 instancji według rozmiaru i procentowego rozdziału na instancję, gdy rozpoczynasz doświadczenie w Studio.