El Memory Profiler és un nou paquet per a Unity 2018.3 o superior que permet analitzar l’ús de memòria d’un projecte per trobar fuites de memòria i fragmentació. Es poden produir fuites de memòria quan s’assigna la memòria, però mai es reparteix per reutilitzar-la després que la memòria ja no sigui necessària. En aquest tutorial, aprendreu a utilitzar el perfilador de memòria per comprovar si hi ha fuites de memòria.
El perfilador de memòria
Amb el perfilador de memòria podeu analitzar l'ús de memòria d'un projecte per trobar fugues i fragmentació. Es poden produir fuites de memòria quan s’assigna memòria però no s’allibera després que ja no calgui. El rendiment del programa es degrada quan s’esgota la memòria, cosa que en última instància fa que el programa (i possiblement fins i tot el dispositiu amfitrió) es bloquegi. Quan la memòria s’assigna en molts blocs petits en lloc de blocs contigus més petits, s’anomena fragmentació de memòria. Com a resultat, les àrees de memòria petites i sense assignar entre els blocs assignats ja no estan disponibles per al seu ús.
Instal·lació del perfilador de memòria
El perfilador de memòria funciona amb Unity Editor, així com amb versions de desenvolupament, i està disponible al gestor de paquets com a paquet de previsualització.
Com instal·lar el perfilador de memòria:
1. A l’Unity Editor, seleccioneu Gestor de paquets a la llista desplegable Finestra.
2. Feu clic a Avançat i seleccioneu Mostra paquets de previsualització.
3. Cerqueu Memory Profiler i feu clic a Instal·la a l'extrem inferior dret de la finestra del Gestor de paquets.
4. Després de la instal·lació, podeu accedir al perfilador de memòria seleccionant "Anàlisi"> "Perfilador de memòria" a la llista desplegable "Finestra".
Enregistreu una instantània de memòria
El perfilador d'emmagatzematge pot dirigir-se a una versió de desenvolupament que s'està executant actualment a l'ordinador local o bé assignar-li una adreça IP específica per a un equip en xarxa.
1. Abans de fer un bolcat, heu de seleccionar una destinació. Per defecte, l'objectiu és l'editor Unity.
2. Per seleccionar un objectiu nou, feu clic al menú desplegable que hi ha a l'extrem superior esquerre del perfilador de memòria.
Feu clic al botó Captura per capturar el perfil d'emmagatzematge actual de l'objectiu seleccionat. Tingueu en compte que la pròpia captura ocupa una mica de memòria. En alguns casos, això pot provocar que l’objectiu es congeli o es bloquegi quan es queda sense memòria.
Importeu una instantània de la memòria capturada
1. Feu clic al botó Importa a la part superior de la finestra del perfilador de memòria.
2. Utilitzeu el menú desplegable Format de fitxer a l'extrem inferior dret del quadre de diàleg Importa fitxer de captura de pantalla per seleccionar el format de la captura d'emmagatzematge que vulgueu importar. Les opcions inclouen fitxers .snap capturats amb el perfilador de memòria i fitxers .memsnap * creats amb el perfilador de memòria Bitbucket.
3. Aneu a la instantània i seleccioneu-la. Feu clic a Obre.
4. La primera vegada que feu una instantània de memòria, es crearà una carpeta anomenada MemoryCaptures (al mateix nivell que la carpeta Actius, no en aquesta carpeta). També podeu desar instantànies de memòria en aquesta carpeta per fer-les accessibles.
5. Vegeu el bolcat de memòria
Després de capturar o importar (inclòs el desplaçament de la captura de pantalla a la carpeta MemoryCaptures), la captura apareixerà a la columna esquerra de la finestra del perfilador de memòria. Feu clic a Obre per veure el perfil d'emmagatzematge.
La visió estàndard i més intuïtiva és l’estructura de l’arbre (Figura 06). Aquesta vista mostra la quantitat de memòria que utilitza cada tipus d'element proporcionalment. En el nostre exemple, 126 ombres ocupen un total de 80 MB de RAM.
Per veure una categoria amb més detall, feu-hi clic per veure tots els elements i les seves respectives petjades de memòria. Es mostra informació més detallada en una taula a sota de l’estructura de l’arbre. Feu clic als encapçalaments per ordenar la taula per valor o grup.
La vista de taula, que es troba tant sota l’estructura d’arbre com sota l’estructura de memòria, conté informació més detallada sobre l’ús de memòria d’elements individuals.
Una visualització més directa, el Mapa de memòria, mostra el disseny de la memòria en diferents colors que representen diferents tipus de memòria. Això pot ser útil per localitzar la fragmentació de la memòria.
Treballar amb el perfilador de memòria
Trobeu una fuita de memòria
Com es pot trobar una fuita de memòria:
1. Inicieu el reproductor, configureu-lo com a objectiu del perfil de desat i feu una instantània d'una escena buida.
2. Carregueu l’escena que voleu provar. Reprodueix part de l'escena per carregar els recursos necessaris.
3. Descarregueu l'escena escrivint Resources.UnloadUnusedAssets () o carregant / creant una escena buida dues vegades
4. Feu una altra instantània i sortiu del mode de reproducció.
5. Carregueu la primera i la segona captura de pantalla al Workbench i feu clic a Dif. Unity calcula la diferència entre les dues captures de pantalla. Això pot trigar uns segons en funció de la mida de la instantània.
6. A la vista de taula, feu clic a l’encapçalament de la columna Dif i seleccioneu Agrupa.
7. Les entrades s'agrupen: iguals, a les dues instantànies, des de la primera instantània suprimida i nova. Les entrades noves són possibles filtracions de memòria.
El perfilador de memòria és una bona manera de controlar l’ús de memòria del vostre projecte.
No només podeu veure què fa servir més espai d’emmagatzematge, sinó també com utilitza o abusa el vostre projecte d’espai d’emmagatzematge. Les fuites de memòria i la fragmentació són dos dels problemes més habituals que afecten el projecte
i el Memory Profiler ho resol.
Originally posted 2020 03:16:16.