Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problemas de RAM en la carga de escenas en editor

Iniciado por TheBullet, Marzo 29, 2017, 11:25:22 AM

Tema anterior - Siguiente tema
Marzo 29, 2017, 11:25:22 AM Ultima modificación: Marzo 30, 2017, 12:23:11 AM por pioj
Buenas! Pongo este hilo en este subforo porque no sabía en cual debía ir exactamente, si está mal que un admin lo mueva.
 
Desde que actualice a 5.5 estoy teniendo problemas grabes en la carga entre escenas en el editor. De hecho, en la primera actualización a 5.5 tuve que volver a 5.4 tras varios días de pruebas. Con la versión 5.5.1f1 y después de ampliar a 16 Gb de RAM pareció que se solucionaban, pero estoy volviendo a tener problemas. He actualizado a 5.5.2 pero sigue igual.
 
El problema es que cuando cargo de una escena a otra en el editor, Unity consume toda la memoria RAM del sistema y se queda al 100% sin haber iniciado aún la escena. Esto hace que todo el sistema petardeé incluso dejando el ratón congelado durante unos instantes hasta que consigue cargar la escena y la RAM vuelve a descender de manera normal, cuando tenía 8GB de RAM Windows directamente se colgaba.
 
Mis escenas no ocupan muchos megas, por ejemplo, la principal del juego con todos los prefabs incluidos en la escena deben ser unos 50 megas (aunque mi juego es bastante pesado, una build 7,5 GB ahora mismo). La mayoría del contenido se genera por script una vez iniciada la escena, por lo que no entiendo que puede estar ocurriendo. Unos segundos después de cargar la escena la memoria RAM pasa del 100% al 55% que es el estado normal cuando está abierto el editor de Unity.
 
Cuando cargo niveles en una build no hay ningún problema, el uso de RAM del sistema no pasa del 45%.
 
¿Alguien ha tenido este tipo de problemas? ¿Vosotros apreciáis picos muy altos de uso de RAM entre escenas en vuestros proyectos? ¿Hay alguna manera de saber para que se está usando la RAM?
 
Gracias.
 
 
 
EDIT: He visto que en el profiler lo que está gastando el tiempo es "Loading.Updatepreloading". Lo malo es que no puedo acceder a la información porque al tocar esa linea en el profiler la RAM vuelve a ir a tope y Unity se cuelga :S

Creo que he encontrado el problema. Por si a alguien más le pasa lo explico...
 
He hecho una build y he revisado el profiler para ver que gastaba más tiempo durante la carga cuando se ejecutaba la build. Como que en la build carga mucho más rápido que el editor lo he podido mirar sin que se colgase. Lo que tarda más tiempo es un proceso llamado "gc.markdependencies". Lo he dejado seleccionado y he vuelto a iniciar el juego en el editor y la parte resaltada del gráfico que más tiempo consume era este proceso (estoy hablando de algo muy bestia... 55 segundos de latencia en el primer frame de la escena). 
 
Total que me ha dado por probar de iniciar una partida en el editor pero con el profiler desactivado ya que me estaba oliendo que era el profiler... y efectivamente, al desactivar el profiler todo carga bien, la RAM no hace una subida durante la carga y llega a un máximo de 65% cuando la escena ya está cargada al completo en vez de llegar al 100% mientras carga la escena y después bajar como hacía antes. Además carga bastante más rápido...
 
Debe haber algún tipo de bug en el profiler que genera mucha basura que llena la RAM, es la única explicación que saco de todo esto... He estado buscando por Google pero no encuentro nada, así que la única solución que he encontrado ahora mismo es dejar desactivado el profiler y si quiero mirar algo activarlo una vez se ha cargado la escena.
 
 

Es bueno saberlo, osea que la leccion es usarlo cuando sea necesario. A mi me pasaba todo lo contrario (no problema de memoria), en el editor andaba todo de 10, en la build los fps bajaban de 60 (vsync) a 30 jojooo, en un juego 2D

La verdad es que es un problema un tanto extraño, tengo la versión 5.5.2, con una escena que debe de ocupar de mas de 1024 megas, me funciona en un ordenador con 4 GB con el editor y Visual Studio abierto.. Si es cierto que he tenido muchos problemas al pasar entre versiones, pero no de memoria.

 
 
Cita de: Miguel_Angel date=1490947282La verdad es que es un problema un tanto extraño, tengo la versión 5.5.2, con una escena que debe de ocupar de mas de 1024 megas, me funciona en un ordenador con 4 GB con el editor y Visual Studio abierto.. Si es cierto que he tenido muchos problemas al pasar entre versiones, pero no de memoria.
   


Si que es raro, en mi juego como casi todo se carga de manera procedural las escenas ocupan poco. Si a vosotros no os pasa quizás es algún asset el que está creando el bug... encontrarlo me va a ser difícil. Espero que la cosa no empeore en las próximas versiones y siga bien sin usar el profiler...

Si, algo de eso sera. A mi con el   profiler me consume la misma memoria.  Cuando se utilizan elementos ajenos es mas difícil encontrar los errores.

El editor de Unity al igual que el juego compilado da errores de FPS cuando se hace uso de Debug's ... corrobora esto..

Es raro por RAM y rarisimo con 16GB ! Con decirte que yo muchas veces trabajo en un portatil con 4GB de RAM ... utilizo la version 5.1.1f1

Pues habrá algo que está gastando más de la cuenta... no se... Intentaré localizarlo, aunque no creo que lo consiga... xD De momento lo tengo medio solucionado desactivando el profiler en las cargas.
 
Gracias a todos por responder!

Etiquetas: