Odniesienie do tagu

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

Następująca jest lista powszechnych tagów w MicroProfiler, grupowana według kategoria.Rozumienie tych tagów może pomóc ci zidentyfikować kod problematyczny w twoim doświadczeniu.Tabele zawierają etykietę tagu, opisy i wskazówki dotyczące wydajności, aby poprawić wydajność i zoptymalizować swoje doświadczenia.

Spać

Kiedy wątki nie wykonują aktywnie zadań, wpadają w stan senny, z tagami wskazującymi, jak długo wątek spał.W dowolnym momencie, jest niezwykle powszechne, aby większość wątków roboczych była w stanie spania.

AI/nawigacja

TytułOpisWskazówki dotyczące wydajności
rasterizuj płytkęAktualizacje płytek nawigacyjnych potrzebnych do wyszukiwania prośba, zwykle połączone z wyliczeniem ścieżki, które wymagają, aby te płytki były aktualne.Śledzi pracę nawigacyjną/preproces na głównym wątku.Zmniejsz liczbę nieprawidłowości wyszukiwania ścieżki, ponieważ powoduje to, że te ścieżki muszą zostać ponownie obliczone. Powodem jest ruch niedostępnych części.
puteściePath

Oblicza ścieżki, zwykle po rasterizeTile .

Zmniejsz liczbę i zakres świata wezwań ComputePath.Spróbuj ponownego wykorzystania ścieżek dla wielu agentów, jeśli są one oczekiwane do rozpoczęcia/zakończenia z przybliżonych lokalizacji.
przedprzetwarzanie/getPrimitivesOverlappingZbiera geometrię świata dla każdej płyтки wyszukiwania ścieżki i planuje zadania rasteryzacji, które mają być wykonywane przez wątek wyszukiwania ścieżki.Zmniejsz liczbę części.

Animacja

TytułOpisWskazówki dotyczące wydajności
Symulacja/gra krok po krokuPrzetwarzanie obiektów specyficznych dla gry, takich jak Humanoids , Animations i powiadomienia o bicie serca
Symulacja/graStepped/StepLegacyHumanoid zmiany stanu i movement.Called stepHumanoid na serwerze teraz (wersja równoległa)Wyłącz lub zmniejsz Humanoid stany na NPC, jeśli je masz.Stan drabiny jest najważniejszy do wyłączenia.Zmniejsz powroty do zmian stanu, takich jak Humanoid.Died lub Humanoid.Running
Symulacja/graStepped/stepAnimacjaAnimators będzie kroczyć naprzód w obecnie odtwarzanych animacjach.Zmniejsz ilość Animators lub animowanych połączeń, aby obniżyć obciążenie tego kroku.Zmniejsz liczbę wezwań do wydarzeń animacji, takich jak AnimationTrack.KeyframeReached lub AnimationTrack.Ended
Symulacja/graStepped/RunService.SteppedWykonuje funkcje połączone z wydarzeniem RunService.Stepped .Zmniejsz ilość lub obciążenie funkcji połączonych z tym wydarzeniem.Rozważ opóźnienie lub zastąpienie kosztownych obliczeń.Rozważ rozprzestrzenianie obliczeń na wiele ram.

Dźwięk

TytułOpisWskazówki dotyczące wydajności
DźwiękPrzetwarzanie dźwięku: lokalizacje, efekty, głośności itp.
Tag rozwojowy_DźwiękiDźwięki w pamięci: ogólnie krótkie dźwięki, które są wystarczająco małe, aby zmieścić się w pamięci. Zazwyczaj krótkie jednorazowe efekty fx, a nie długa muzyka.Użyj mniej krótkich dźwięków.
Tag rozwojowy_Dźwięki przesyłaniastream/StreamingSounds: są to większe dźwięki, które są przesyłane z dysku. Ogólnie dłuższe pliki muzyczne.Użyj mniej długich dźwięków.

Sieciowanie

TytułOpisWskazówki dotyczące wydajności
Odbiór pakietów sieciowychOtrzymuje pakiety sieciowe. Jeśli wiele obiektów lub wydarzeń jest replikowanych, ten krok zajmuje dłużej.Replikuj mniej obiektów lub wydarzeń.
Replikator/Pakiety procesówPrzetwarza zawartość pakietów sieciowych, takie jak ruch, wezwania wydarzeń i zmiany właściwości.Zmniejsz liczbę lub rozmiar obiektów replikowanych lub zrób to w krokach kumulatywnych.Może wzrosnąć, jeśli rozmiar mapy wzrośnie, ponieważ większe mapy mają tendencję do większej ogólnej aktywność.
Przydział przepustowości i uruchomienie nadawców/dyspatcherów fizyki i nadawców dotykowychWysyła dane o aktywności w doświadczeniu.Zmniejsz ilość poruszających się obiektów i/lub dotknięć. Zobacz następne sekcje.
Przydzielaj przepustowość i uruchamiaj nadawców/StreamJob rozsyłaniaWysyła odpowiednie specyficzne regiony do określonych klientów w funkcja"Streamowanie".Zmniejsz minimalny i docelowy promień przesyłania.
Zarezerwuj przepustowość i uruchom nadawców/rozsyłaczy danychWysyła zmiany właściwości, zdarzenia zdalne, zmiany stanu Humanoida, rozpoczęcia/zatrzymania animacji.Zmniejsz liczbę powtórzonych zmian w modelu danych
Replikator SendClusterWysyła dane o terenie do klientów.Zmniejsz ilość lub rozmiar zmian terenu.
ModelCompleteness Mega pracaTylko serwer: kompletność jest koncepcją wewnętrzną. Gdy modele są wysyłane w całości, wysyłane są wydarzenia kompletności modelu.Dodaj lub usuń mniej instancji.
Pakiet DeserializacjiNiskopoziomowe przetwarzanie pakietów sieciowych. Przygotowuje do pakietów procesu replikatora.Wyślij mniej aktualizacji.

Renderowanie

TytułOpisNotatki o wydajności
PrzygotujInformacje są gromadzone z głównego wątku i aktualizują różne struktury danych używane do renderowania.To blokuje wątki symulacyjne, więc powinno być jak najmniejsze.Zobacz przygotuj etykiety poniżej.
Przygotuj/Pass3dAdornRenderowanie różnych ozdób obiektów, takich jak etykiety tekstowe nad obiektami. Ten krok może obejmować rozsyłanie promieni, aby określić, czy takie obiekty są widoczne.Zmniejsz liczbę widocznych ozdobionych obiektów, takich jak BillboardGuis , Humanoid etykiety nazwy/zdrowia itp.
Przygotuj/Przekaż2dPrzygotowuje renderowanie interfejsu 2D (zarówno gracz, jak i interfejs Roblox).Zmniejsz ilość lub złożoność elementów interfejsu.
Przygotuj/ZaktualizujPrzygotuj/zaktualizujNieprawidłowe częściAktualizuje części, które miały zmienioną lub dodaną właściwość.Zmniejsz ilość zmian właściwości na świecie. Jeśli skrypt aktualizuje dużą liczbę właściwości obiektów, rozbij ją na poszczególne ramy.
Przygotuj/ZaktualizujPrzygotuj/zaktualizujNieważne szybkie klastryPrzygotowuje geometrię, zwykle "Szybkie klastry" używane do renderowania Humanoids. Podmarkery określają liczbę części, wierzchołków i rozmiar wierzchołków.Zmniejsz użycie "Humanoidów" pod obiektami, które nie są Humanoids .Nie powinno to być używane do skrócenia wezwań do wyciągania, ponieważ FastClusters zużywają znacznie więcej pamięci.
Przygotuj/ZaktualizujPrzygotuj/zaktualizujDynamiczne częściAktualizuje pozycje dla Humanoids , pojazdów i innych przemieszczających się instancji do renderowaniaZmniejsz liczbę lub złożoność przemieszczania Humanoids lub widocznych pojazdów.Połączenie części tego samego materiału i koloru w związek lub MeshPart może pomóc w tym.
Przygotuj/aktualizujPrzygotuj/aktualizujInstancedClustersPrzygotowuje statyczną geometrię, która wykorzystuje renderowanie instancji (części i części siatki). Nazwy "Klastery" i "Instancje" wskazują na aktualizowaną liczbę.Użyj mniej ogólnej zmiany siatki i różnic materiałów. Możesz także tworzyć klastry za pomocą obiektów o podobnym wyglądzie - rozmiarze, kolorze, materiałzie.
WykonajKiedy są tworzone i wydawane rzeczywiste komendy renderowania.Zobacz etykiety wykonania poniżej.
Wykonaj/wypełnijGUIVerticesRenderowanie interfejsu. Wypełnia buforami węzłów interfejsu dla ozdób. Etykieta "Liczba GUI" wskazuje ilość elementów na liście renderera.Jeśli koszt jest wysoki, zmniejsz ilość aktualizowanego interfejsu użytkownika poprzez wyłączenie go, gdy nie jest używany, zapewniając, że jest prawidłowo ukryty.
Wykonaj/Scenę/queryFrustumOrderedStosuje selekcję frustum, aby nie renderować obiektów niewidocznych.Jeśli istnieje wysoki koszt, oznacza to, że istnieje wiele elementów.Być może użyj nieco większych siatek, w których pojedyncza siatka ma więcej szczegółów w porównaniu do wielu małych części.
Wykonaj/Scenę/ computeLightingPerformObliczanie oświetlenia w pobliżu kamery.Manipuluj liczbą źródeł światła lub przesuń kamerę mniej, aby zmniejszyć czas potrzebny na ponowne obliczenie oświetlenia.
Wykonaj/Scena/ computeLightingPerform/LightGridCPUAktualizuje oświetlenie voxel, które jest używane w trybach Voxel i ShadowMap i na poziomach jakości poniżej 4 w trybie Future.Jeśli aktualizacja zajętości kawałków zajmuje zbyt dużo czasu, rozważ użycie mniejszej rozdzielczości geometrii, zmniejszenie liczby części lub zakotwiczenie części.Jeśli inne podmarkery zajmują zbyt dużo czasu, rozważ zmniejszenie liczby świateł i wykorzystanie geometrycznej geometrii rzucania cieni dla obiektów, które się poruszają i anulują obecność.
Wykonaj/Scena/ computeLightingPerform/ShadowMapSystemAktualizuje mapy cieni. Nie wykonywane na poziomach jakości poniżej 4 lub gdy Lighting.Technology jest ustawiony na Voxel.Jeśli oświetlenie jest ustawione na Future , obniż je do ShadowMap lub zmniejsz liczbę świateł.Możesz także użyć Light.Shadows i BasePart.CastShadows, aby wyłączyć rzucanie cieni na mniej ważnych instancjach.Zobacz Poprawa wydajności.
Wykonaj/Scenę/Świecenie, Korekcję kolorów, MSAA, SSAO i SSAOApplyWyświetlanie po przetworzeniu.Zmniejsz liczbę efektów post-processingowych. Zazwyczaj nie jest to znaczące.
Wykonaj/Scena/UIRenderowanie interfejsu. W Id_Screen istnieje etykieta z liczbą użytych partii, materiałów i trójkątów.Zmniejsz liczbę widocznych elementów interfejsu. Korzystanie z CanvasGroups może pomóc kosztem zwiększonego zużycia pamięci.
Wykonaj/Scenę/Aktualizuj widok/aktualizuj cząstki, aktualizuj granice cząstekAktualizuj pozycję i granice cząstek.Zmniejsz liczbę ParticleEmitters , poziomy emisji, czas trwania itp. Ogranicz ruch emitentów.
Id_OpaqueCzęści w scenie z wartością przeźroczystości 0.
Id_TransparentCzęści w scenie z wartością przejrzystości inną niż 0.Zmniejsz użycie częściowej przejrzystości (wartości inne niż 0 i 1).
Id_DecalNaklejki w scenie.
Wykonaj/PrzedstawCzeka, aż GPU zakończy renderowanie poprzedniego ramu; rzeczywiście wydaje polecenia renderowania do GPU; zajmuje się niskopoziomowymi zasobami graficznymi.Zmniejsz ogólnezłożoność sceny. Jeśli ten krok zajmuje dużo czasu, możesz być ograniczony przez GPU.
Wykonaj/Przedstaw/czekaj aż do ukończeniaCzeka, aż GPU zakończy renderowanie poprzedniego ramu.Jeśli to ogólnie dzieje się dużo, to ilość renderowanych rzeczy jest zbyt wysoka.FRM pomaga zrównoważyć to, ale jeśli pozostanie wysoki, spróbuj używać mniej szczegółów.

Skrypty

TytułOpisWskazówki dotyczące wydajności
Renderowanie/PreRenderowanie/fireBindToRenderSteppedCallbacksWykonanie funkcji wiązanych z renderowaniem kroku za pomocą RunService:BindToRenderStep() .Upewnij się, że funkcje w skryptach za pomocą RunService:BindToRenderStep() wykonują jak najmniej pracy.
Renderowanie/PreRenderowanie/RunService.RenderSteppedWykonuje funkcje połączone z wydarzeniem RunService.RenderStepped .Podobnie jak BindToRenderStep, upewnij się, że funkcje korzystające z tego wydarzenia wykonują jak najmniej pracy.
Czekanie na hybrydowe skryptowe zadanieWznowia skrypty oczekujące za pomocą oczekiwania. ram.Ten krok ma budżet czasu wykonania do uruchamiania skryptów oczekiwania, więc jeśli masz zbyt wiele skryptów oczekiwania lub skryptów z długim czasem wykonania przed oddaniem, ten krok może zająć wiele
LuaGCCykl zbierania śmieci Luau. Etykieta dostarcza szacunki pamięci na temat całkowitej alokacji i tego, ile zostało odzyskane.Basenowe tabele lua i inne przedmioty kolekcjonerskie lub spróbuj zmniejszyć tworzenie tymczasowych tabel lub ciągów
Bicie serca/RunService.HeartbeatWykonuje funkcje połączone z Class.RunService.Heartbeat``event.Talk do kontaktów symulacji i skryptów. Obecny opis jest wystarczająco ogólny, aby nie błądzićZmniejsz ilość lub obciążenie funkcji połączonych z RunService.Heartbeat.

Symulacja

TytułOpisWskazówki dotyczące wydajności
Rozproszone własności fizyczneOkreśla, czy serwer lub klient ma uprawnienia do pewnych instancji, takich jak części.Rozproszone własności fizyczne.
Symulacja/złożenieAktualizuje drzewo połączonych obiektów (zbiory) używane przez silnik fizyczny.Zmniejsz ilość stawów, które są tworzone lub niszczone.
Symulacja/fizykaSteppedTotal/physicsSteppedWykonuje symulację fizyczną.Zmniejsz ilość i złożoność fizycznie symulowanych ciał.
Symulacja/fizykaSteppedTotal/physicsStepped/SpatialFilter/filterStepAktualizuje wyspy symulacji, organizuje części według własności sieci, lokalną symulację.Wyspy to nieinterakcyjne grupy części, które można symulować niezależnie.Unikaj częstego ustawiania własności sieci. Trzymaj grupy części wystarczająco daleko od siebie, aby mogły być symulowane oddzielnie.
Symulacja/fizykaSteppedTotal/physicsStepped/worldStep/stepContactsAktualizuje kontakty między obiektami.Zmniejsz ilość ciał, które jednocześnie się zderzają, lub użyj prostszych skrzynek kolizyjnych. Kostki są lepsze niż skomplikowane siatki.
Symulacja/fizykaSteppedTotal/physicsStepped/worldStep/stepWorld LUB stepWorldThrottledRozwiązuje równania fizyczne dotyczące połączeń, przepływu i Humanoids .Gdy silnik jest przeciążony i nie jest w stanie symulować wszystkiego w czasie rzeczywistym, niektóre kroki mogą zostać ograniczone (stepWorldThrottled) i symulowane są tylko "zebrania rzeczywistego czasu", takie jak Humanoids .Zależy od tego, gdzie czas idzie w oparciu o następujące trzy fazy: testy geometrii detekcji kolizji wąskiego etapu kontaktów.Krok rozwiązania: zintegruj czas i rozwiąż kolizje oraz inne ograniczenia updateBroadphase: aktualizuj pozycje zespołów w systemie wykrywania kolizji i znajdź ewentualnie kolizyjne wąskie pary fazy.
Powiadomienie o poruszaniu zespołówPomaga śledzić, jak długo prymitywy spały.
Symulacja/fizykaSteppedTotal/physicsStepped/interpolateNetworkedAssembliesInterpoluje zgromadzenia nie kontrolowane przez tę sieć peer.Ustaw właściciela sieci części do tej pary, aby zmniejszyć to; choć zwykle spowoduje to wykonanie więcej pracy fizycznej gdzie indziej.
Symulacja/handleFallenPartsUsuwa części, które spadły poniżej Workspace/FallenPartsDestroyHeight.Obniż wysokość zniszczenia lub zmniejsz ilość części, które spadają do wysokości zniszczenia.
Bicie serca/heartbeatInternal/workspaceOnHeartbeat/updateVisuallySleepingDruga część NotifyMovingAssemblies.
Bicie serca/RunService.HeartbeatWykonuje funkcje połączone z Class.RunService.Heartbeat``event.Talk do kontaktów symulacji i skryptów. Obecny opis jest wystarczająco ogólny, aby nie błądzićZmniejsz ilość lub obciążenie funkcji połączonych z RunService.Heartbeat.
worldStep/Kontakty krokówPomaga symulacji fizycznej krok wielu kontaktów na raz.Zmniejsz liczbę kolizyjnych obiektów.
Rozwiąż serięPomaga symulacji fizycznej rozwiązać serię ruchu obiektów.
Interpolacja mechanizmuPomaga w InterpolateNetworkAssemblies.

UI

TytułOpisWskazówki dotyczące wydajności
Renderuj/PreRenderuj/Aktualizuj wejścieAktualizuje i uruchamia wszystkie wydarzenia związane z wejściem użytkownika, jeśli użytkownik wykonał wejście od ostatniego ramu.Wystrzelą wtedy wydarzenia związane z wejściem użytkownika.Ważne jest, aby spróbować nie wykonywać zbyt dużo pracy bezpośrednio po otrzymaniu wejścia.Rozważ wykonanie minimalnej ilości przetwarzania dla wejścia, a większe obliczenia powinny zostać przesunięte na inny wątek, który pojawi się później.
Renderowanie/PreRenderowanie/TweenServiceAktualizuje obiekty przechowywane za pomocą TweenService i wzywa powiadomienia o zakończeniu, takie jak te używane do TweenSize lub TweenPosition.Zmniejsz liczbę obiektów przechwytywanych za pomocą TweenService i zapewnij, że wezwania powrotne wykonują jak najmniej pracy.
Renderowanie/PreRenderowanie/Aktualizowanie UILayoutówAktualizuje pozycję i rozmiar elementów UI.Zmniejsz ilość elementów interfejsu użytkownika, które są zmieniane lub przesuwane dynamicznie, takich jak te zarządzane przez UILayout.
Pulser/TweenServiceNa serwerze aktualizowane są obiekty przetwarzane za pomocą TweenService. Na klientzie zamiast tego dokonuje się tego w kroku PreRender.Zmniejsz ilość obiektów przetwarzanych przez TweenService .