Odnośnik 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 lista to wspólne tagi w MicroProfilerze, grupowane według kategoria. Zrozumienie tych tagów może pomóc Ci zidentyfikować problematyczny kod w swoim doświadczeniu. Tabely zawierają etykiety, opisy i wskazówki dotyczące optymalizacji swojego doświadczenia.

AI/Navigacja

EtykietaOpisRada dotycząca wydajności
rasterizujAktualizuje płytki nawigacyjne wymagane do wyszukaiwania prośba, zwykle poprzedzane przez wykonaniePath, które wymaga, aby te płytki były aktualizowane. Śledzi NavigationJob / pre処理 na głównym wątku.Zmniejsz liczbę nieprawidłowych znalezisk ścieżek, ponieważ powoduje to, że te ścieżki muszą być ponownie obliczone. To jest spowodowane przez nieprawidłowo położone części.
liczŚcieg

Oblicza ścieżki, zwykle po rasterizeTile .

Zmniejsz liczbę i zasięg świata ComputePath wezwania. Spróbuj ponownego użycia ścieżek dla wielu agentów, jeśli oczekuje się, że zaczną/zakończą się z około podobnych lokalizacji.
preprocess/getPrimitivesOverlappingZbiera geometrię świata dla każdej płytki ścieżki i zaplanowuje zadania na rasterizację do wykonania przez wątek ścieżki.Zmniejsz liczbę części.

Animacja

EtykietaOpisRada dotycząca wydajności
Simulacja/graPrzetwarzanie obiektów specjalnych gry, takich jak Humanoids, Animations i wezwania do serca
Simulation/gameStepped/StepLegacyHumanoid zmienia stan i movement.Called krokHumanoid na serwerze teraz (wersja równoległa)Wyłącz lub zmniejsz Humanoid stan na NPC, jeśli masz go. stan licytacji jest najważniejszy do wyłączać, przestawać. Redukuj wezwania do zmiany stanu, takich jak Humanoid.Died lub Humanoid.Running.
Simulation/gameStepped/stepAnimationAnimators pójdzie do przodu w graniu w animacje.Zmniejsz ilość Animators lub połączeń animowanych, aby zmniejszyć obciążenie tego kroku. Zmniejsz liczbę wezwanych funkcji do wydarzeń animacji, takich jak AnimationTrack.KeyframeReached lub AnimationTrack.Ended.
Simulation/gameStepped/RunServiceWykonuje funkcje powiązane z wydarzeniem RunService.Stepped.Zmniejsz ilość lub obciążenie funkcji powiązanych z tym wydarzeniem. Rozważ rozszerzenie lub zastąpienie drogich obliczeń. Rozważ rozprzestrzenianie obliczeń na wiele ram.

Dźwięk

EtykietaOpisRada dotycząca wydajności
DźwiękPrzetwarzanie dźwięku: lokalizacje, efekty, głośniki itp.
DeveloperTag_DźwiękiDźwięki w pamięci: ogólnie różne krótkie dźwięki, które są wystarczająco duże, aby trafić w pamięć. Zwykle krótkie fx jednorożca, nie długa muzyka.Użyj mniej krótkich dźwięków.
DeveloperTag_StreamingSoundsstream/StreamingSounds: są to większe dźwięki, które są transmitowane z dysk. Zwykle dłuższe pliki muzyczne w formie.Użyj mniej długich dźwięków.

Sieci

EtykietaOpisRada dotycząca wydajności
Odbieranie pakietów sieciowychOtrzymuje paczki sieciowe. Jeśli wiele obiektów lub wydarzeń jest replikowanych, ten krok trwa dłużej.Replikuj mniej obiektów lub wydarzeń.
Replikator/PackietyProcesowePrzetwarza treści pakietów sieciowych, takie jak ruch, wezwania wydarzeń i zmiany właściwości.Zmniejsz liczbę lub rozmiar obiektów replikowane, lub wykonaj to w krokach zwiększonych. Może się to zwiększyć, jeśli rozmiar mapy się zwiększa, ponieważ większe mapy mają tendencję do posiadania więcej ogólnej aktywność.
Dostarcz pasmo i uruchom wysyłaczy/dyspozytorników fizycznych i TouchSendersWyświetla dane o aktywności w doświadczeniu.Zmniejsz ilość ruchomych obiektów i/lub dotyków. Zobacz następne sekcje.
Zakonfiguruj przepustnicę i zadaj zadanie wysyłania/dysponowaniaWyświetla odpowiadające regiony dla konkretnych klientów w funkcja"Przesyłanie".Zmniejsz minimum i docelowy obszar przesyłania.
Zakonfiguruj przepustnicę i zesyłaj dane wysyłania/dane dystrybucjiWyświetla zmiany właściwości, zdarzenia zdalne, zmiany stanu ludzkiego, animacja start / zatrzymania.Ogranicz liczbę powtórzonych zmian do modelu danych
Wysyłacz ReplikatorówWyświetla dane terenu dla klientów.Zmniejsz ilość lub rozmiar zmian terenu.
ModelCompleteness Mega PracaTylko na serwerze: kompletość jest koncepcją wewnętrzną. Gdy modele są wysyłane w pełni, zdarza się wysyłanie zdarzeń kompletości modelu.Dodaj lub usuń mniej instancji.
Zeszyfrowany pakietPrzesyłanie pakietów sieciowych niskiego poziomu. Przygotowuje się do Replicator ProcessPackets.Wyślij mniej aktualizacji.

Renderowanie

EtykietaOpisNotatki o wydajności
PrzygotujInformacje z głównego wątku i aktualizowane są różne struktury danych używane do renderowania. To blokuje wątki simulacyjne, więc powinny być tak małe, jak to możliwe.Zobacz przygotuj poniżej.
Przygotuj/Pass3dAdornRenderowanie różnych ozdób obiektów, takich jak tekstowe etykiety nad obiektami. Ten krok może obejmować raycasting, aby określić, czy takie obiekty są widoczne.Zmniejsz liczbę widocznych ozdobionych obiektów, takich jak BillboardGuis, Humanoid imię/zdrowia nalepek itp.
Przygotuj/Pass2dGotowy renderowanie interfejsu 2D (zarówno dla gracza jak i dla Roblox UI).Zmniejsz ilość lub złożoność elementów interfejsu.
Przygotuj/aktualizuj/aktualizuj nieprawidł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że zestawy właściwości obiektu, podziel go na klatki.
Przygotuj/aktualizuj/aktualizuj nieaktualizowaneFastClustersPrzygotowuje geometrię, zwykle "FastClusters" używany do renderowania Humanoids . Podziałniki określają liczbę części, wierzchołków i rozmiar wierzchołków.Ogranicz użycie 'Humanoid' pod obiektami, które nie są Humanoids . Nie należy używać tego, aby skrócić wezwania rysunku, ponieważ FastClusters zużywa znacznie więcej pamięci.
Przygotuj/aktualizuj/aktualizujDynamische TeileAktualizuje pozycje dla Humanoids , pojazdy i inne ruchome instancje do renderowania.Zmniejsz liczbę lub złożoność widocznych Humanoids lub pojazdów. Połączenie części tego samego materiału i koloru w jedną lub MeshPart może pomóc.
Przygotuj/ZaktualizujPrzygotuj/aktualizInstancedClustersPrzygotowuje statyczną geometrię, która używa instancyjnego renderowania (części i części siatki). Label "klastry" i "instancje" oznaczają aktualizowany numer.Użyj mniej ogólnej zmiany siatki i materiału. Możesz również tworzyć klamerki, używając obiektów, które mają podobny wygląd - rozmiar, kolor, materiał.
WykonajGdy rzeczywiste komendy renderowania są utworzone i wydane.Zobacz poniżej etykiety wykonania.
Wykonaj/zapełnij GUIRenderowanie interfejsu. Wypełnia wierzchowce z interfejsu dla ozdób. Przycisk „Gui count” wskazuje ilość elementów w liście renderera.Jeśli koszt jest wysoki, zmniejsz ilość interfejsu aktualizowana przez wyłączenie go, gdy nie jest używany, zapewniając, że jest poprawnie ukryty.
Perform/Scene/queryFrustumOrderedStosuje filtrowanie frustum, aby obiekty niewidoczne nie były renderowane.Jeśli istnieje duży koszt, co oznacza, że istnieje wiele elementów. Być może użyj większych siatek, gdzie jedna siatka ma więcej szczegółów niż wiele małych pojedynczych części.
Perform/Scene/計算光源PerformObliczanie oświetlenia w pobliżu kamery.Manipuluj ilością źródeł światła lub przesuń kamerę mniej, aby zmniejszyć czas potrzebny do obliczenia oświetlenia.
Perform/Scene/computeLightingPerform/LightGridCPUAktualizuje oświetlenie woxela, które jest używane w Voxel i ShadowMap trybach i na poziomach jakości poniżej 4 w trybie Future .Jeśli aktualizacja zajęcia części zajmuje zbyt wiele czasu, rozważaj używanie niższej geometrii rozdzielczości, zmniejszając liczbę części lub przywiązując części. Jeśli inne subarkery biorą zbyt długo, rozważaj zmniejszenie liczby świateł i używanie geometrii niecienkiej dla obiektów, które się poruszają i anulują znajomość.
Perform/Scene/computeLightingPerform/ShadowMapSystemAktualizuje mapy cienia. Nie wykonuje się na poziomach jakości poniżej 4 lub gdy Lighting.Technology jest ustawiony na Voxel.Jeśli oświetlenie jest ustawione na Future, zmniejsz go do ShadowMap lub zmniejsz liczbę świateł. Możesz również użyć Light.Shadows i 1> Class.BasePart.CastShadows1>, aby wyłączyć kastowanie c
Wykonaj/Scenę/Zdrowaś, Korrekcja Kolorów, MSAA, SSAO i SSAOApplyRenderowanie post-Processing.Zmniejsz liczbę efektów post-processing. Zwykle nie jest to istotne.
Wykonaj/Scenę/UIRenderowanie interfejsu. W Id_Screen istnieje etykieta z liczbą rzędów, materiałów i kątów używanych.Zmniejsz liczbę widocznych elementów interfejsu. Używanie CanvasGroups może pomóc kosztem zwiększonego zużycia pamięci.
Perform/Scene/UpdateView/updateParticles, updateParticleBindingsAktualizuj pozycję i granice cząsteczek.Zmniejsz liczbę ParticleEmitters , stawki emisji, czasy życia itp. Ogranicz ruch emisji.
Id_OpakowanieCzęści na scenie z wartością przejrzystości 0.
Id_PrzezroczystyObiekty w scenie z inną wartością przejrzystości niż 0.Ogranicz użycie częściowej przejrzystości (wartości poza 0 i 1).
Id_NaklejkaDekale na scenie.
Wykonaj/ZgłośCzeka na ukończenie renderowania poprzedniego klatki przez GPU; w rzeczywistości wykonuje komendy renderowania dlaGPU; zajmuje się niskiego poziomowego zasobami graficznymi.Redukuj złożoność sceny ogólnie rzecz ogólne. Jeśli ten krok trwa długo, możesz być ograniczony przez GPU.
Wykonaj/Zgłoś/czekaj aż zakończoneCzeka na zakończenie renderowania poprzedniego klatki przez GPU.Jeśli to się zdarza bardzo często, to ilość renderowanych rzeczy jest zbyt duża. FRM pomaga zrównoważyć to, ale jeśli pozostaje duża, spróbuj użyć mniej szczegółowości.

Skrypcje

EtykietaOpisRada dotycząca wydajności
Render/PreRender/fireBindToRenderSteppedCallbacksFunkcje do renderowania związane z krokiem związanym z RunService:BindToRenderStep() .Upewnij się, że funkcje w skryptach używają RunService:BindToRenderStep() , aby wykonać tak mało pracy, jak to możliwe.
Render/PreRender/RunService.RenderSteppedWykonuje funkcje związane z wydarzeniem RunService.RenderStepped.Podobnie jak BindToRenderStep, upewnij się, że funkcje używające tego wydarzenia wykonują tak mało pracy, jak to możliwe.
Czekaj na zadanie hybrydoweZwraca skrypty, które czekają, używając czekań.Ten krok ma budżet czasu wykonania, aby wykonać czekające skrypty, więc jeśli masz zbyt wiele czekających skryptów lub skryptów z długim czasem wykonania przed wydaniem, ten krok może zająć wiele
LuaGCCCykl zbierania śmieci Lua. Label dostarcza szacunki pamięci na poziomie całkowitej dystrybucji i tego, ile zostało odizolowane.Stawiaj tabeli lua w basenie lub inne zbieralne obiekty lub spróbuj zmniejszyć tworzenie tymczasowych tabel lub łańcuszków
Heartbeat/RunService.HeartbeatWykonuje funkcje połączone z Class.RunService.Heartbeat``event.Talk do kontaktów z symulacją i skryptami. Obecna opis jest wystarczająco ogólna, aby nie być błędnaZmniejsz ilość lub obciążenie funkcji powiązanych z RunService.Heartbeat.

Simulacja

EtykietaOpisRada dotycząca wydajności
Dystrybucja własności fizykiOkreśla, czy serwer lub klient ma autorytet nad niektórymi instancjami, takimi jak części.Dystrybucja własności fizyki.
Simulacja/zgromadzenieAktualizuje drzewo połączonych obiektów (zestawień), które są używane przez silnik fizyczny.Zmniejsz ilość stworzonych lub zniszczonych łączeń.
Simulation/physicsSteppedTotal/physicsSteppedZaopatruje siMULATION fizycznych.Zmniejsz ilość i złożoność fizycznie symulowanych ciał.
Simulation/physicsSteppedTotal/physicsStepped/SpacialFilter/filterStepAktualizuje wyspy symulacyjne, ustawiając części według własności sieci, lokalnej simulacji. Wyspy są niezależnymi grupami części, które można symulować niezależnie.Unikaj ustawiania własności sieci często. Miej grupy części tak daleko od siebie, aby można było je symulować osobno.
Simulation/physicsSteppedTotal/physicsStepped/worldStep/stepKontaktyAktualizuje kontakty między obiektami.Zmniejsz ilość kolidujących się jednocześnie ciał lub użyj prostszych skrzynek kolizji. Kostki są lepsze niż złożone siatki.
Simulation/physicsSteppedTotal/physicsStepped/worldStep/stepWorld LUB stepWorldThrottledRozwiązuje problemy fizyczne dotyczące połączników, pływalności i Humanoids . Gdy silnik jest przeciążony i nie może simulować wszystkiego w czasie rzeczywistym, niektóre kroki mogą być ograniczone (stepWorldThrottled) i tylko "czasy rzeczywiste" takie jak Humanoids są simulZależy od tego, gdzie czas biegnie w oparciu o następujące trzy fazy: stepContacts: szerokie wykrywanie kolizji z geometrią testów. Solver step: integrates time and solve collisions and other constraints updateBroadprice: update pozycje zespołów w systemie wykrywania kolizji i znaleźć ewentualnie kolizją dwóch faz wąskich.
Powiadomienia o przesuwaniu zestawówPomaga śledzić, ile czasu odkrywały się podstawowe części.
Simulation/physicsSteppedTotal/physicsStepped/interpolateNetworkedAssembliesInterpoluje zgromadzenia niekontrolowane przez tego sieciowego kola.Ustaw właściciel sieci części na ten sąsiad, aby zmniejszyć to; choć to zwykle powoduje, że więcej pracy fizycznej będzie wykonanych gdzie indziej.
Simulacja/HandleFallenPartsUsuwa części, które spadły poniżej Workspace / FallenPartsDestroyHeight.Zmniejsz wysokość niszczenia lub zmniejsz ilość części, które spadają podczas niszczenia wysokości.
Heartbeat/heartbeatInternal/workspaceOnHeartbeat/updateVisuallySleepingDruga część NotifyMovingAssemblies.
Heartbeat/RunService.HeartbeatWykonuje funkcje połączone z Class.RunService.Heartbeat``event.Talk do kontaktów z symulacją i skryptami. Obecna opis jest wystarczająco ogólna, aby nie być błędnaZmniejsz ilość lub obciążenie funkcji powiązanych z RunService.Heartbeat .
worldStep/Kontakty krok po krokuPomaga to wymodelować fizykę symulacji wielu kontaktów naraz.Zmniejsz liczbę kolizujących obiektów.
Rozwiąż problemPomaga symulacji fizycznej rozwiązać masy obiektów.
Interpolacja mechanizmuPomaga w InterpolateNetworkAssemblies.

Interfejs użytkownika

EtykietaOpisRada dotycząca wydajności
Render/PreRender/UpdateInputAktualizuje i pożega wszystkie związane z użytkownikiem wydarzenia w ramach, jeśli użytkownik wykonał wejście od czasu ostatniej ramy.To jest czas, w którym zdarza się pożar wszystkich wydarzeń związanych z wejściem użytkownika. Ważne jest, aby spróbować nie robić zbyt wiele pracy bezpośrednio po otrzymaniu wejścia. Rozważ powiększenie minimalnej ilości pracy dla wejścia i większych obliczeń powinien zostać przeniesiony na inny wątek, który następnie się pojawi.
Render/PreRender/TweenServiceAktualizuje obiekty, które są tweenowane przy użyciu TweenService i wzywa do ukończenia wezwania, takich jak te używane do TweenSize lub TweenPosition.Zmniejsz liczbę obiektów do zapisu używając TweenService i upewnij się, że wezwania zwracają tyle pracy, ile to możliwe.
Render/PreRender/UpdateUILayoutsAktualizuje pozycję i rozmiar elementów UI.Zmniejsz ilość elementów interfejsu, które są zmniejszane lub przesuwane dynamicznie, takich jak te zarządzane przez UILayout .
Heartbeat/TweenServiceNa serwerze aktualizuje się obiekty z TweenService. Na klientach zamiast tego zrobione jest to w kroku przed renderowaniem.Zmniejsz ilość obiektów uczynszonych przez TweenService .