Narzędzie MicroProfiler jest dostępne w Roblox Studio i programie Roblox Client, który dostarcza szczegółowe informacje o czasie dla zadań zadania zaplanowania zwane Tagami.
- Aby uzyskać listę zadań Common, zobacz Tagi referencji.
- Aby uzyskać krok po kroku przykład użycia MicroProfiler, zobacz MicroProfiler Walkthrough.
Podstawy mikro profilera
Aby otworzyć MicroProfiler, naciśnij CtrlAltF6 ( ⌘1> ⌥1> 3> F63> ) w Studio lub na klienta. Możesz również użyć menu ustawień w klienta.
Gdy jest otwarty, widoczna jest menu bar na górze 3D-okienka. W trybie domyślnym widoczny jest grafik kalkulacyjny ruchomych bar.
Bary powinny być ogólnie pośród środka grafy, ale możesz zobaczyć niespodziewane spiki (szybkie zwiększenie wartości). Spiki wskazują, że więcej czasu było potrzebne na wykonanie niektórych zadań, zwykle z powodu zwiększonej obciążenia pracy. Na instancja, tworzenie dużej liczby części ruchnych wymaga więcej pracy z symulacji fizycznej, co pot
Aby wstrzymać nagranie klatkowej, naciśnij CtrlP ( ⌘P ) lub kliknij 2> Pause2> w menu bar. Podczas wstrzymań pojawia się timeline, a możesz przeglądać poprzez klatkę, klikając lub przeciągając na grafiku.
Aby uzyskać pełną wersję podsumowania różnych widoków i sposób przeglądania interfejsu MicroProfiler, zobacz tryby MicroProfiler.
Wątki
Podobnie jak wiele programów, Roblox używa wielu wątków, aby wykonać kilka sekwencji zadań jednocześnie. W trybie szczegółowym MicroProfiler można zobaczyć etykiety dla każdego wątku po lewej stronie.
Są trzy główne rodzaje wątków:
Główny/Render : Być może nieintuicyjnie, biegnie na CPU. Przetwarza wejścia, Humanoids, animacje/tweening, własność fizyczna, dźwięk i czekanie na skrypt zakończenia. Aktualizuje również interfejsy Studio i koordynuje inne wątki.
Praca ("Praca RBX": Pomaga głównemu wątkowi z siecią, fizyką i kierowaniem drogami. Ze względu na liczbę rdzeni w nowoczesnych procesorach HP prawdopodobnie masz wiele wątków pracy.
Renderuj ("GPU") Śledzi logikę "przygotuj, wykonaj, prezentuj". Komunikuje się z jednostką przetwarzania grafiki (GPU) urządzenie.
- Przygotuj: Informacje z głównego wątku są używane do aktualizacji modeli renderowania.
- Wykonaj: Wydaj renderowanie komend, w tym interfejsy 2D.
- Obecny: Synchronizuje się z GPU.
Niestandardowy profil
Jeśli Twoje skrypty wykonują skomplikowane zadania, możesz zidentyfikować krytyczne części kodu, aby upewnić się, że nie trwają zbyt długo. Wrap kod w debug.profilebegin() i debug.profileend(), aby zacząć odliczanie czasu pomiędzy tymi wezwaniami funkcji i utworzyć etykietę na timeline'u MicroProfiler.
HardWorkScript
debug.profilebegin("Hard Work")-- Tutaj jest gdzie kod do profilowania powinien byćdebug.profileend()
Dostępna jest ograniczona ilość pamięci dostępna dla wszystkich etykiet MicroProfiler. Jeśli ta pamięć się skończy, własne etykiety profilera mogą nie pojawiać się jako znaczące imię w timelinie. Użyj mniej etykiet, aby uniknąć tego problemu. Jeśli nie musisz już profilować sekcji swojego kodu, komentuj lub usuń wezwania do tych funkcji.
Przykład
Poniżej przykładowy kod połącza funkcję manekinową z wydarzeniem RunService.PreSimulation, które jest uruchomione w każdym klatce. Wszystko, co zrobisz, powinno być wykonane tak skutecznie, jak to możliwe, więc ta funkcja jest dobrym kandydatem do profilowania.
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Praca ciężka przykładu: wymień dwa zmienne 200,000 razy
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
Gdy uruchomisz doświadczenie i wstrzymiesz MicroProfiler ( CtrlP lub ⌘P), widoczna jest niestandardowa etykieta pod labeliem 2>gameStepped2>.
Z jego czasu na linii czasowej możesz powiedzieć, że funkcja używa dużo czasu przetwarzania w porównaniu do innych operacji.
Zapisywanie danych ramy
Jeśli chcesz zapisać zestaw danych ramy dla późniejszej recenzji (lub podzielić się z kimś innym) użyj menu Zapisz. Silnik zapisuje dane ramy do pliku microprofile-<date>-<time>.html w katalogu Roblox.
- Na Windows, check %LOCALAPPDATA%\Roblox\logs .
- Na macOS, sprawdź ~/Library/Logs/Roblox .
Te pliki HTML używają tych samych interfejsu opartego na web jak łączenie na żywo dla urządzeń mobilnych i zrzuty serwera.
Profile na urządzeniach mobilnych
Aby uzyskać dostęp do MicroProfiler z urządzenia mobilnego, twoje urządzenie mobilne musi być połączone z tą samą siecią co twój komputer rozwojowy.
Włącz w mikroprom menu ustawień urządzeniemobilnego. Po włączeniu menu pokaż adres IP i numer portu.
Na przykład w powyższym screenie adres jest 192.168.1.166 i port jest 1338 . Z komputera na tej samej sieci, przesuń się do http://192.168.1.166:1338 dla wersji 1>web-based1> inter
Profileowanie Serwera
Oprócz standardowego klienta MicroProfiler można zrobić krótkie dumps działalności serwera używając serwera MicroProfiler.
W doświadczeniu, dla którego masz edytowanie uprawnień, otwórz konsolę rozwoju z CtrlAltF9 .
W menu spustosznym wybierz MicroProfiler .
W sekcji ServerProfiler określ liczbę klatk na sekundę (maksymalnie 60) i liczbę sekund do profilowania (maksymalnie 4).
Kliknij Zacznij nagrywać .
Po kilku sekundach Developer Console dostarcza drogę do pliku, który jest tą samą drogą co standardowy zapis ustawień pliku.
Używanie interfejsu użytkownika sieci
ogólnerzecz biorąc, interfejs webowy MicroProfiler działa podobnie do Trybu szczegółowego, ale ma kilka dodatkowych funkcji:
Oprócz filtrowania według grupamożesz filtrować według wątku.
Użyj CtrlF / ⌘F, aby skakać do czasu pojawienia się zadania, które zajmuje najwięcej czasu w dumps. Na przykład, 2> computeLightingPerform2> bieżący w każdym klatce. Jeśli szukasz go w dumps z 128 klatk
Użyj menu Tomograf , aby włączyć lub wyłączyć kodowanie kolorów dla dostosowania pamięci.
- Lżejsze ramy w grafice głównej wskazują na wyższą alokację pamięci.
- Mniejsze części przewodnika i mniejsze etykiety na pasku podajnikowego wskazują na części ramy z wyższą alokacją pamięci.
- W trybie rentgenowskim naciśnij C, aby pokazać wielkość całej ilości przypisów pamięci, a nie liczbę przypisów.
Użyj menu Eksportuj , aby eksportować grafikę promieni świetlnych CPU lub pamięci, specjalizowaną wizualizację, która łączy wszystkie wezwania dołączone wumpy. Grafika promieni świetlnych jest szczególnie przydatna do identyfikacji zadań, które nie trwają dłużej niż zazwyczaj, ale będą wykonane tak często, że ich czas wykonania stanie się znaczny.
Przeciągnij i upuść drugi plik zrzutu do interfejsu użytkownika, aby generować grafikę płomienia, która może pomóc Ci zidentyfikować poprawy lub regresje w wydajności Twojego doświadczenia w ciągu czasu. Kliknij Połącz & Porównaj , aby eksportować nowy plik HTML.
Grafika płomienia różnicy wyjaśnia, co konsumuje więcej pamięci lub CPU, z lepszymi kolorami wskazującymi na większą różnicę.