Buenas
Estaba empezando a implementar un sistema de pausa sacando una captura con screen_save para poder simular las instancias congeladas.
Al probar en juego noté que cada que saco la captura el consumo de Ram aumenta (el proceso Runner). Si pauso y despauso 4 o 5 veces ya habrá subido 1 MB de consumo.
Antes tuve el mismo problema (usaba la función surface_save) pero controlaba el consumo con la DLL cleanmem.
Puede que no sea tan grave pero al estar probando mi juego pasó de 9-10 MB a 40 MB con sólo poner y quitar la pausa.
¿Por qué pasa esto? ¿Afectará mucho en Android por ejemplo? Podría volver a utilizar la DLL pero quiero tratar de no depender de DLL's (creo que sólo funcionan en Windows).
Es mi duda, igual es algo normal. Tal vez nadie pause tanto mi juego que llegue a saturar la memoria jajaja.
NOTA: Sólo hago la captura, aún no uso sprite_add ni nada.
EDITO: Ya solucioné el detalle, en lugar de crear un PNG con la captura hago el sprite directamente con la función sprite_create_from_surface y, obviamente, elimino el sprite cuando ya no es necesario.
He estado probando mucho y al parecer la memoria RAM se mantiene estable, aumenta al crear el sprite y disminuye al eliminarlo.
Por ejemplo antes era asi:
RAM Normal: 30,134 KB
RAM Pausa: 34,567 KB
RAM al despausar: 30,968 KB
Ahora es asi
RAM Normal: 30,234 KB
RAM Pausa: 36,567 KB
RAM al despausar: 30,234 KB (a veces varia pero no es tanto, ya es cosa del juego no de la pausa)
Estaba empezando a implementar un sistema de pausa sacando una captura con screen_save para poder simular las instancias congeladas.
Al probar en juego noté que cada que saco la captura el consumo de Ram aumenta (el proceso Runner). Si pauso y despauso 4 o 5 veces ya habrá subido 1 MB de consumo.
Antes tuve el mismo problema (usaba la función surface_save) pero controlaba el consumo con la DLL cleanmem.
Puede que no sea tan grave pero al estar probando mi juego pasó de 9-10 MB a 40 MB con sólo poner y quitar la pausa.
¿Por qué pasa esto? ¿Afectará mucho en Android por ejemplo? Podría volver a utilizar la DLL pero quiero tratar de no depender de DLL's (creo que sólo funcionan en Windows).
Es mi duda, igual es algo normal. Tal vez nadie pause tanto mi juego que llegue a saturar la memoria jajaja.
NOTA: Sólo hago la captura, aún no uso sprite_add ni nada.
EDITO: Ya solucioné el detalle, en lugar de crear un PNG con la captura hago el sprite directamente con la función sprite_create_from_surface y, obviamente, elimino el sprite cuando ya no es necesario.
He estado probando mucho y al parecer la memoria RAM se mantiene estable, aumenta al crear el sprite y disminuye al eliminarlo.
Por ejemplo antes era asi:
RAM Normal: 30,134 KB
RAM Pausa: 34,567 KB
RAM al despausar: 30,968 KB
Ahora es asi
RAM Normal: 30,234 KB
RAM Pausa: 36,567 KB
RAM al despausar: 30,234 KB (a veces varia pero no es tanto, ya es cosa del juego no de la pausa)