Memory Profiler je nový balík pre Unity 2018.3 alebo novší, ktorý vám umožňuje analyzovať využitie pamäte projektu a nájsť úniky pamäte a fragmentáciu. Úniky pamäte môžu nastať vtedy, keď je pamäť alokovaná, ale nikdy nie je uvoľnená na opätovné použitie, keď už pamäť nie je potrebná. V tomto tutoriále sa naučíte, ako používať Memory Profiler na kontrolu úniku pamäte.
Profil pamäte
Pomocou profilovača pamäte môžete analyzovať využitie pamäte projektu a nájsť úniky a fragmentáciu. K úniku pamäte môže dôjsť vtedy, keď je pamäť vyhradená, ale nie je uvoľnená, keď už nie je potrebná. Po vyčerpaní pamäte sa výkon programu zhoršuje, čo v konečnom dôsledku vedie k zlyhaniu programu (a možno aj hostiteľského zariadenia). Keď je pamäť alokovaná v mnohých malých blokoch, a nie v menších súvislých blokoch, nazýva sa to fragmentácia pamäte. Výsledkom je, že malé, nepridelené pamäťové oblasti medzi pridelenými blokmi už nie sú k dispozícii na použitie.
Inštalácia programu Memory Profiler
Program Memory Profiler funguje s editorom Unity aj s vývojovými zostavami a je k dispozícii v Správcovi balíkov ako ukážkový balík.
Ako nainštalovať Memory Profiler:
1. V programe Unity Editor vyberte z rozbaľovacieho zoznamu Okno Správca balíkov.
2. Kliknite na položku Rozšírené a vyberte položku Zobraziť ukážkové balíky.
3. Nájdite položku Memory Profiler a kliknite na položku Inštalovať v pravom dolnom rohu okna Správca balíkov.
4. Po inštalácii môžete vstúpiť do programu Memory Profiler zvolením „Analysis“> „Memory Profiler“ z rozbaľovacieho zoznamu „Window“.
Zaznamenajte snímku pamäte
Profil úložiska môže buď zacieliť na aktuálne spustenú vývojovú zostavu na lokálnom počítači, alebo mu priradiť konkrétnu adresu IP pre počítač v sieti.
1. Predtým, ako sa dostanete na skládku, musíte vybrať cieľ. Štandardne je cieľom editor Unity.
2. Ak chcete vybrať nový cieľ, kliknite na rozbaľovaciu ponuku v ľavom hornom rohu programu Profiler pamäte.
Kliknutím na tlačidlo Zachytiť zachytíte aktuálny profil úložiska vybratého cieľa. Všimnite si toho, že samotné zachytenie zaberá určitú pamäť. V niektorých prípadoch to môže spôsobiť, že cieľ zamrzne alebo zlyhá pri nedostatku pamäte.
Importujte snímku nasnímanej pamäte
1. Kliknite na tlačidlo Importovať v hornej časti okna Memory Profiler.
2. Pomocou rozbaľovacej ponuky Formát súboru v pravom dolnom rohu dialógového okna Importovať súbor snímky vyberte formát snímky úložiska, ktorú chcete importovať. Možnosti zahŕňajú súbory .snap zachytené pomocou programu Memory Profiler a súbory .memsnap * vytvorené pomocou nástroja Bitbucket Memory Profiler.
3. Prejdite na svoju snímku a vyberte ju. Kliknite na Otvoriť.
4. Pri prvom nasnímaní snímky pamäte sa vytvorí priečinok s názvom MemoryCaptures (na rovnakej úrovni ako priečinok Assets, nie v tomto priečinku). Do tohto priečinka môžete tiež uložiť snímky pamäte a sprístupniť ich.
5. Zobrazte výpis z pamäte
Po zachytení alebo importe (vrátane presunutia snímky do priečinka MemoryCaptures) sa táto snímka zobrazí v ľavom stĺpci okna Memory Profiler. Kliknutím na položku Otvoriť zobrazíte profil úložiska.
Štandardným a najintuitívnejším zobrazením je stromová štruktúra (obrázok 06). Toto zobrazenie ukazuje proporcionálne množstvo pamäte, ktorú každý typ prvku používa. V našom prípade 126 shaderov zaberá celkom 80 MB pamäte RAM.
Ak chcete kategóriu zobraziť podrobnejšie, kliknutím na ňu zobrazíte všetky položky a príslušné pamäťové stopy. Podrobnejšie informácie sú zobrazené v tabuľke pod stromovou štruktúrou. Kliknutím na nadpisy usporiadate tabuľku podľa hodnoty alebo skupiny.
Tabuľkové zobrazenie, ktoré sa nachádza pod stromovou štruktúrou aj pod štruktúrou pamäte, obsahuje podrobnejšie informácie o využití pamäte jednotlivými prvkami.
Priamejší pohľad, Mapa pamäte, zobrazuje rozloženie pamäte v rôznych farbách a zobrazuje rôzne typy pamäte. To môže byť užitočné pri lokalizácii fragmentácie pamäte.
Práca s programom Memory Profiler
Nájdite únik pamäte
Ako nájsť únik pamäte:
1. Spustite prehrávač, nastavte ho ako cieľ uloženia profilu a urobte snímku prázdnej scény.
2. Načítajte scénu, ktorú chcete otestovať. Zahrajte si časť scény a načítajte potrebné prostriedky.
3. Uvoľnite scénu zadaním Resources.UnloadUnusedAssets () alebo dvojitým načítaním / vytvorením prázdnej scény
4. Vytvorte ďalšiu snímku a ukončite režim prehrávania.
5. Načítajte prvý a druhý screenshot do pracovného stola a kliknite na Diff. Unity vypočíta rozdiel medzi týmito dvoma snímkami obrazovky. V závislosti od veľkosti snímky to môže trvať niekoľko sekúnd.
6. V zobrazení tabuľky kliknite na záhlavie stĺpca Rozdiel a vyberte položku Skupina.
7. Záznamy sú zoskupené: rovnaké v oboch snímkach z prvej odstránenej snímky a novej. Nové položky sú možným únikom pamäte.
Memory Profiler je úžasný spôsob, ako monitorovať využitie pamäte vášho projektu.
Môžete nielen vidieť, čo využíva najviac úložného priestoru, ale aj to, ako váš projekt úložný priestor využíva alebo zneužíva. Úniky pamäte a fragmentácia sú dva z najčastejších problémov, ktoré ovplyvňujú projekt
a nástroj Memory Profiler to rieši.
Pôvodne uverejnené 2020-03-16 16:46:00.