Mikro profil

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

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.

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.

The Microprofiler frame graph, showing blue frames and detailed frame information.

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

The Microprofiler with several bars higher than others.

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.

The lefthand side of the Microprofiler detailed view, with rows for threads.

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()
A custom label on the detailed view of the MicroProfiler.

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>.

Many labels on the MicroProfiler, with a custom label taking up the majority of the processing time.

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.

A picture of the Settings menu on mobile, showing how to enable the MicroProfiler.

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

The MicroProfiler web view.

Profileowanie Serwera

Oprócz standardowego klienta MicroProfiler można zrobić krótkie dumps działalności serwera używając serwera MicroProfiler.

  1. W doświadczeniu, dla którego masz edytowanie uprawnień, otwórz konsolę rozwoju z CtrlAltF9 .

  2. W menu spustosznym wybierz MicroProfiler .

  3. W sekcji ServerProfiler określ liczbę klatk na sekundę (maksymalnie 60) i liczbę sekund do profilowania (maksymalnie 4).

  4. Kliknij Zacznij nagrywać .

    The Developer Console MicroProfiler screen.

    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.

    The MicroProfiler web view with x-ray enabled.
    • 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.

    The MicroProfiler flame graph.
  • 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.

    The MicroProfiler diff flame graph builder showing the left and right sides.

    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ę.

    The MicroProfiler diff flame graph.