MicroProfiler

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

MicroProfiler to narzędzie do optymalizacji wydajności i rozwiązywania problemów w Roblox Studio oraz kliencie Roblox. Zapewnia szczegółowe, wizualne informacje o czasie wykonywania wszystkich zadań silnika, które są realizowane w trakcie klatki, takich jak animowanie postaci, aktualizowanie fizyki, uruchamianie skryptów i renderowanie geometrii. Możesz zidentyfikować, które zadania były realizowane w danej klatce, jak długo trwały te zadania oraz czy któreś z nich spowodowały, że nie osiągnąłeś swoich celów czasowych klatki.

Czasy klatek

Aby korzystać z MicroProfilera, musisz zrozumieć związek między czasem klatki a liczbą klatek na sekundę.

  • Czas klatki to czas, jaki zajmuje renderowanie klatki na ekranie, zazwyczaj mierzony w milisekundach.
  • Liczba klatek na sekundę to liczba klatek renderowanych na ekranie, zazwyczaj mierzona w klatkach na sekundę (FPS).

Niższe czasy klatek oznaczają wyższą liczbę klatek na sekundę. Podziel 1000 milisekund (1 sekunda) przez czas klatki, aby uzyskać liczbę klatek na sekundę.

Średni czas klatkiKlatek na sekundę
33.33 ms30 FPS
16.67 ms60 FPS
8.33 ms120 FPS
4.17 ms240 FPS

Jednak dla płynnej rozgrywki nie wystarczy mieć wysokiej liczby klatek na sekundę. Potrzebujesz spójnych czasów klatek. Na przykład, jeśli 59 klatek przychodzi w 10 milisekundach, a jedna klatka w 410 milisekundach, gracze odczuwają ogromne, szokujące zacięcie, nawet jeśli gra działa z prędkością 60 FPS. Jeśli wszystkie klatki zajmują mniej więcej ten sam czas na renderowanie, twoja gra będzie wydawać się zauważalnie płynniejsza dzięki tej spójności, szczególnie przy niższych liczbach klatek na sekundę.

MicroProfiler koncentruje się całkowicie na czasie klatki. Jego celem jest pomóc ci zidentyfikować skoki czasów klatek i co je spowodowało.

Otwórz MicroProfiler

Otwieranie MicroProfilera różni się w zależności od platformy:

  • W kliencie mobilnym otwórz menu Ustawienia i zmień MicroProfiler na Włączony. Następnie z komputera deweloperskiego w tej samej sieci użyj przeglądarki internetowej, aby przejść do podanego adresu IP i portu.

    Interfejs użytkownika MicroProfilera na urządzeniu mobilnym.

    Ten zrzut ekranu pokazuje adres IP 172.18.56.105 i port 1338, więc przechodzisz do 172.18.56.105:1338. W zależności od konfiguracji sieci twojego urządzenia możesz zobaczyć wiele adresów IP. Jeśli jeden nie działa, spróbuj następnego.

  • W kliencie desktopowym naciśnij CtrlF6 (⌘F6).

  • W Studio naciśnij CtrlF6 (⌘F6).

Ogólnie rzecz biorąc, klient mobilny jest najlepszym miejscem do profilowania twojej gry. Większość graczy na Robloxie korzysta z telefonów i tabletów, a te urządzenia mają poważne ograniczenia termiczne i energetyczne, które ograniczają ich wydajność. Jeśli twoja gra działa dobrze na średniej klasy tablecie z Androidem, prawie na pewno działa znacznie lepiej na komputerze do gier.

Podstawy MicroProfilera

MicroProfiler ma dwa kluczowe komponenty: wykres słupkowy czasu klatki i szczegółowy harmonogram zadań.

  • Wykres czasu klatki biegnie wzdłuż górnej części interfejsu i pokazuje, jak długo zajęło renderowanie każdej klatki. Wyższe słupki oznaczają dłuższe czasy klatek.
  • Harmonogram pokazuje wszystkie indywidualne zadania, które były realizowane w trakcie klatki. Szersze słupki reprezentują zadania, które zajmowały więcej czasu na realizację.

Typowy proces roboczy w MicroProfilerze polega na użyciu wykresu czasu klatki do zidentyfikowania skoku (wyższego słupka), a następnie użyciu harmonogramu do zidentyfikowania, które zadania spowodowały ten skok. Następnie możesz sprawdzić Referencję tagów w celu uzyskania informacji na temat zadania i sposobów poprawy jego wydajności.

Przykład skoku czasu klatki.

Wykres czasu klatki

Wysokość każdego słupka wskazuje liczbę milisekund, które zajęły zakończenie klatki. Nowsze klatki znajdują się po prawej stronie. Najedź kursorem na klatkę, aby uzyskać podstawowe informacje na temat użycia CPU i GPU.

Wykres czasu klatki MicroProfilera, pokazujący niebieskie klatki i szczegółowe informacje o klatkach.
  • Pomarańczowe słupki to klatki, w których Czas Ściany Zadań przekracza Czas Ściany Renderowania. W tych klatkach przynajmniej jeden z wątków roboczych, które wykonują takie zadania jak uruchamianie skryptów, obliczanie fizyki i odtwarzanie animacji, zajmował więcej czasu na realizację niż główny wątek renderujący.

    Jeśli gra nie osiąga twoich celów czasowych klatki i ma dużą liczbę pomarańczowych klatek, powszechnymi przyczynami są skrypty, fizyka i animacje. Zobacz Popraw wydajność.

  • Niebieskie słupki to klatki, w których Czas Ściany Renderowania przekracza Czas Ściany Zadań. W tych klatkach główny wątek renderujący zajmował więcej czasu niż jakiekolwiek wątki robocze.

    Jeśli gra nie osiąga twoich celów czasowych klatki i ma dużą liczbę niebieskich klatek, oznacza to wąskie gardło w renderowaniu. Powszechnymi przyczynami są nadmierna gęstość obiektów, ruch obiektów i oświetlenie. Zobacz Popraw wydajność.

  • Czerwone słupki to klatki, w których spełnione są dwa warunki:

    • Czas Ściany Renderowania przekracza Czas Ściany Zadań
    • Czas Oczekiwania GPU jest większy niż 2.5 milisekundy

    Czerwone słupki są mniej powszechne niż pomarańczowe i niebieskie i często są wynikiem nadmiernej złożoności obiektów, rozmiaru tekstur i efektów wizualnych. Optymalizacja jest podobna do niebieskich słupków. Zobacz Popraw wydajność.

Małe zadania na końcu klatki mogą czasami zaburzać Czas Ściany Zadań i Czas Ściany Renderowania, co jest dobrym powodem, aby skupić się bardziej na czasie klatki niż na kolorze klatki. Nie ma "dobrego" koloru, do którego warto dążyć. Mieszanka pomarańczowych, niebieskich i czerwonych nie jest problematyczna, o ile osiągasz swoje cele czasowe klatki. Jeśli nie osiągasz swoich celów czasowych klatki, kolory mogą wskazywać, gdzie należy optymalizować.

Harmonogram

  • Kliknij lewym przyciskiem myszy i przeciągnij, aby przesunąć harmonogram. Na maszynie z wieloma rdzeniami CPU możesz potrzebować przesunąć w górę lub w dół, aby znaleźć wątek wykonujący konkretne zadanie.

    Lewa strona szczegółowego widoku MicroProfilera, z wierszami dla wątków.
  • Przewijanie powiększa i pomniejsza harmonogram. W połączeniu z etykietami milisekund na górze harmonogramu możesz uzyskać poczucie, jak długo trwało zadanie w sensie absolutnym, ale także jak długo trwało w porównaniu do innych zadań.

    Szczegółowy widok MicroProfilera z licznymi poziomymi etykietami.
  • Zielony nakładka na wykresie słupkowym wskazuje liczbę klatek aktualnie widocznych na harmonogramie—twój poziom powiększenia. Kliknij lewym przyciskiem myszy na słupek klatki, aby przejść do tej pozycji na harmonogramie.

    Może być konieczne dostosowanie poziomu powiększenia, ale najedź kursorem na słupek, aby podświetlić klatkę na harmonogramie. Jasnoszare linie wyznaczają klatki.

    Wykres słupkowy MicroProfilera z zieloną nakładką, aby pokazać poziom powiększenia.
  • Etykiety, które pojawiają się bezpośrednio pod inną etykietą, wskazują zadania, które są realizowane jako część wyższego zadania.

    Zamiast zadania nadrzędnego, zazwyczaj chcesz rozwiązać problemy z najgorzej działającymi zadaniami podrzędnymi; zadanie nadrzędne nie może być krótsze niż suma jego zadań podrzędnych.

  • Kliknij prawym przyciskiem myszy etykietę, aby powiększyć harmonogram do dokładnie czasu trwania tego zadania.

  • Jeśli ilość informacji jest przytłaczająca, użyj menu Grupy lub Wątki, aby filtrować harmonogram. Na przykład, możesz chcieć zobaczyć tylko zadania Render w głównym wątku.

    Widok po najechaniu na etykietę, z wyróżnioną Grupą.
  • Użyj CtrlF (⌘F), aby przejść do wystąpienia zadania, które zajmuje najwięcej czasu w zrzucie. Na przykład, computeLightingPerform działa w każdej klatce klienta. Jeśli wyszukasz to w zrzucie z 128 klatkami, możesz przejść do klatki, w której zajęło najwięcej czasu na zakończenie.

Wątki

Podobnie jak wiele programów, Roblox używa wielu wątków do wykonywania sekwencji zadań jednocześnie. MicroProfiler wyświetla nazwę wątku po lewej stronie harmonogramu.

Lewa strona szczegółowego widoku MicroProfilera, z wierszami dla wątków.

Istnieją trzy ważne typy wątków:

  • Główny ("RBX Main"): Obsługuje zadania renderowania oparte na CPU. Przetwarza wejście, Humanoids, animacje/tweening, własność fizyki, dźwięk i oczekiwanie na wznowienia skryptów. Aktualizuje również interfejsy Studio i koordynuje inne wątki.

  • Roboczy ("RBX Worker"): Pomaga głównemu wątkowi w sieci, fizyce i znajdowaniu ścieżek. Z powodu liczby rdzeni w nowoczesnych CPU prawdopodobnie masz wiele wątków roboczych, z których większość jest w stanie uśpienia w danym momencie.

  • Render ("GPU"): Podąża za logiką "przygotuj, wykonaj, zaprezentuj". Komunikuje się z jednostką przetwarzania grafiki (GPU) urządzenia.

    • Przygotuj: Informacje z głównego wątku są używane do aktualizacji modeli renderowania.
    • Wykonaj: Wydaj polecenia renderowania, w tym interfejsy 2D.
    • Zaprezentuj: Synchronizuje się z GPU.

Niestandardowe profile skryptów

Jeśli twoje skrypty wykonują skomplikowane zadania, możesz profilować krytyczne części kodu, aby upewnić się, że nie zajmują zbyt dużo czasu. Owiń kod w debug.profilebegin() i debug.profileend(), aby zmierzyć wszystko, co zostało zrobione między tymi wywołaniami funkcji i utworzyć etykietę na harmonogramie MicroProfilera.

local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Ciężka Praca")
-- Przykład ciężkiej pracy: zamień dwie 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)
Wiele etykiet na MicroProfilerze, z niestandardową etykietą zajmującą większość czasu przetwarzania.

Z jego czasu trwania na harmonogramie możesz stwierdzić, że funkcja wykorzystuje dużo czasu przetwarzania w porównaniu do innych zadań.

Analizuj zrzuty z Asystentem

W Studio możesz poprosić Asystenta o automatyczną analizę wstrzymanego zrzutu MicroProfilera, zidentyfikowanie wąskich gardeł wydajności i zaproponowanie poprawek.

  1. W Studio otwórz MicroProfiler za pomocą CtrlF6 (⌘F6).
  2. Gdy zauważysz skok czasu klatki, wstrzymaj zrzut, naciskając Wstrzymaj w górnym menu lub używając CtrlP (⌘P).
  3. Otwórz Asystenta i poproś go o analizę zrzutu. Przykładowe zapytania to:
    • "Złapałem skok czasu klatki w MicroProfilerze—przeanalizuj to."
    • "Co spowodowało skok?"
    • "Czy jest związane z fizyką czy skryptami?"
    • "Która kategoria ma najwyższy czas ekskluzywny?"
    • "Gdy jestem w hangarze, FPS spada. Powtórz problem, użyj MicroProfilera, aby znaleźć przyczynę, napraw to i przetestuj ponownie."

Asystent odczytuje wstrzymany zrzut przez API MicroProfilera i zwraca raport na temat prawdopodobnych wąskich gardeł, wraz z proponowanymi zmianami w skryptach lub scenie, które możesz zastosować.

Ta funkcjonalność działa również za pośrednictwem serwera Studio MCP, więc możesz zintegrować analizy MicroProfilera z własnym agentem AI lub pętlą agentową, aby uzyskać automatyczne informacje zwrotne na temat tego, jak nowe zmiany wpływają na wydajność twojej gry.

Zapisz dane klatek

Jeśli chcesz zapisać zestaw danych klatek do późniejszego przeglądu (lub aby podzielić się nimi z kimś innym), użyj przycisku Zapisz do pliku. MicroProfiler zapisuje dane klatek do samodzielnego pliku HTML o nazwie microprofile-<data>-<czas>.html.

Przycisk zapisu do pliku w interfejsie użytkownika w sieci.

W kliencie desktopowym lub w Studio użyj menu Zrzut. W obu przypadkach MicroProfiler automatycznie zapisuje plik w katalogu dzienników Roblox:

  • W systemie Windows sprawdź %LOCALAPPDATA%\Roblox\logs.

    Jeśli korzystasz z aplikacji Universal Windows Platform (UWP), sprawdź \Users\<nazwa_użytkownika>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\.

  • W systemie macOS sprawdź ~/Library/Logs/Roblox.

Profiluj serwer

Oprócz profilowania klienta, możesz uchwycić krótkie zrzuty aktywności serwera:

  1. W kliencie desktopowym dołącz do gry, do której masz uprawnienia do edytowania.

  2. Otwórz Konsolę Dewelopera za pomocą CtrlF9 (⌘F9).

  3. W menu rozwijanym wybierz MicroProfiler.

  4. W zakładce Serwer określ liczbę klatek do uchwycenia (maksymalnie 60) oraz liczbę sekund opóźnienia przed rozpoczęciem zrzutu (maksymalnie 4).

  5. Kliknij Rozpocznij nagrywanie serwera.

    Ekran MicroProfilera w Konsoli Dewelopera.

    Po kilku sekundach Konsola Dewelopera podaje ścieżkę do pliku, która jest taka sama jak w przypadku standardowego zrzutu.

Funkcje tylko w sieci

MicroProfiler ma dwa interfejsy użytkownika: interfejs użytkownika w sieci (mobilny i zrzuty) oraz interfejs użytkownika desktopowego (klient i Studio). Zalecamy korzystanie z interfejsu użytkownika w sieci, gdy to możliwe. Ogólnie rzecz biorąc, oba działają podobnie, ale interfejs użytkownika w sieci ma kilka dodatkowych funkcji:

  • Użyj menu Rentgen aby włączyć lub wyłączyć kodowanie kolorów dla alokacji pamięci.

    Widok MicroProfilera w sieci z włączonym rentgenem.
    • Jaśniejsze klatki w głównym wykresie słupkowym wskazują wyższą alokację pamięci.
    • Jaśniejsze części wykresu podglądu i jaśniejsze etykiety na harmonogramie wskazują części klatki z wyższą alokacją pamięci.
    • W trybie rentgena naciśnij C, aby pokazać całkowity rozmiar alokacji pamięci, a nie liczbę alokacji.
  • Użyj menu Eksportuj, aby wyeksportować wykres płomieni CPU lub pamięci, specjalistyczną wizualizację, która agreguje wszystkie stosy wywołań zawarte w zrzucie, utrzymuje hierarchię rodzic-dziecko i rozmiaruje je na podstawie czasu trwania. Wykresy płomieni są szczególnie przydatne do identyfikacji zadań, które nie powodują, że nie osiągasz swoich celów czasowych klatki (a zatem są trudne do zauważenia), ale są realizowane tak często, że ich czas przetwarzania staje się znaczący.

    Wykres płomieni MicroProfilera w interfejsie użytkownika w sieci.

    Możesz również tworzyć wykresy płomieni w Studio, chociaż tylko dla skryptów (czasu wykonania i alokacji pamięci). W porównaniu do wykresów płomieni w sieci, te w Studio są od góry do dołu, a nie od dołu do góry i obsługują znacznie dłuższe czasy zrzutu.

    Wykres płomieni MicroProfilera w Studio.
  • Przeciągnij i upuść drugi plik zrzutu do interfejsu użytkownika w sieci, aby wygenerować wykres różnicowy płomieni, który może pomóc w identyfikacji ulepszeń lub regresji wydajności twojej gry w czasie. Kliknij Połącz i porównaj, aby wyeksportować nowy plik HTML.

    Budowniczy wykresu różnicowego płomieni MicroProfilera, pokazujący lewą i prawą stronę.

    Wykres różnicowy płomieni podświetla zrzut (lewy lub prawy), który zużywa więcej CPU lub pamięci, a jaśniejsze kolory wskazują większą różnicę.

    Wykres różnicowy płomieni MicroProfilera.

Funkcje tylko na desktopie

Na osi czasu desktopowej kliknij lewym przyciskiem myszy etykietę, aby dodać ją do wykresu liniowego w prawym dolnym rogu. Wykres pokazuje czas, jaki zajmuje zadanie w każdej klatce. Używając tego wykresu, możesz testować wydajność tylko niektórych zadań w swojej grze. Gdy skończysz, kliknij prawym przyciskiem myszy wykres, aby go ukryć.

Wykres pokazujący, jak długo zadania zajmują na klatkę.

Ten wykres jest zsynchronizowany z głównymi słupkami profilu. Aktualnie wybrany zakres klatek jest podświetlony na zielono na wykresie. Możesz również kliknąć w dowolnym miejscu na tym wykresie, aby ponownie wyśrodkować główny widok profilu na tej konkretnej klatce, co jest pomocne w znajdowaniu skoków w szczegółowym widoku.

Wyszukiwanie w szczegółowym widoku

W kliencie desktopowym możesz wyszukiwać zadania według nazwy w widoku Szczegółowym:

  1. Otwórz MicroProfiler za pomocą CtrlF6 (⌘F6) i przełącz się na tryb Szczegółowy.

  2. Naciśnij CtrlF (⌘F), aby otworzyć pole wyszukiwania.

  3. Wpisz część nazwy zadania lub etykiety. Dopasowanie jest nieczułe na wielkość liter i znajduje tekst w dowolnym miejscu w nazwie. Dopasowane etykiety zachowują swój kolor, a wszystkie inne etykiety są przyciemnione. Klatki, które zawierają dopasowanie, są podświetlane na wykresie czasu klatki.

  4. Przemieszczaj się między dopasowaniami:

    AkcjaSkrót
    Następne dopasowanieF3 lub Enter
    Poprzednie dopasowanieShiftF3 lub ShiftEnter

    Możesz również kliknąć przyciski < i > obok pola wyszukiwania. Aktualne dopasowanie jest obrysowane i oznaczone trójkątem powyżej, a licznik, taki jak 12 / 340, pokazuje jego pozycję wśród wszystkich dopasowań. Jeśli dopasowanie jest poza ekranem, harmonogram przewija się do niego. Jeśli przesunąłeś harmonogram, nawigacja kontynuuje od dopasowań, które są aktualnie widoczne.

  5. Naciśnij Esc, lub naciśnij CtrlF (⌘F) ponownie, aby zamknąć wyszukiwanie. Zamknięcie wyszukiwania nie zamyka MicroProfilera.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.