¡Bienvenido a la serie de blogs para desarrolladores de Altia! Estas publicaciones están escritas por nuestros propios expertos en GUI para presentar ideas de diseño y soluciones inteligentes para desarrollar e implementar interfaces de usuario integradas con Altia Design, nuestro editor de UI, y Altia DeepScreen, nuestro generador automático de código de gráficos.

Asegúrese de Regístrate para recibir nuestro boletín de noticias y recibir este contenido directamente.


Reducir el uso de RAM para un objetivo miniGL

Altia miniGL es un Pantalla profunda de Altia implementación de arquitectura que se ha utilizado junto con cosas como OpenVG y renderizado de software para generar diseños para objetivos o entornos menos capaces y con recursos restringidos.

El código miniGL de Altia ya está muy optimizado en términos de consumo de RAM, pero si aún está buscando formas de reducir la RAM, aquí hay algunas sugerencias que vale la pena examinar.

Evita objetos innecesarios

Altia miniGL empaqueta datos de manera muy eficiente, pero hay algunas opciones de diseño que pueden mejorar aún más la efectividad de esta optimización. Él Animaciones integradas y Los objetos de imagen utilizan el sistema de archivos Las opciones de la pantalla de generación de código aumentarán la cantidad de RAM utilizada. Estas opciones obligan a su código DeepScreen a permitir una mayor variabilidad, lo que reduce la optimización porque se desconoce el rango de los datos. Este mismo efecto ocurre cuando se usa Objetos de instantáneas. Evite estos objetos u opciones de generación de código si no los necesita.

En general, los próximos candidatos para la reducción de RAM son Objetos de E/S de texto. Estos se pueden recortar comprobando la longitud de cada objeto para que solo consuma la cantidad mínima necesaria de RAM. Puede ajustar la generación de código configurando la longitud máxima de la cadena de texto (memoria estática) a la longitud en caracteres de la E/S de texto más larga posible. Esto también puede ahorrar espacio en los arreglos de datos internos. Si alguna de las E/S de texto en estas matrices no está dirigida por un objeto de lenguaje o por la lógica, se pueden cambiar a etiquetas estáticas. Las etiquetas estáticas se almacenan en la ROM en lugar de en la RAM.

Mismas imágenes, mismo nombre

Si su diseño contiene varias referencias al mismo archivo de origen de la imagen, asegúrese de que todas las animaciones en las que se utilice esta imagen compartan el mismo nombre. Si copia y pega un objeto de imagen, el nombre se incrementa automáticamente. Puedes ver un ejemplo de esto a continuación.

Esto se puede evitar agregando _global al nombre de la variable de animación y también se muestra a continuación.

Ahora, todos estos objetos diferentes se cargarán y harán referencia a la misma instancia de imagen en la RAM. Esto permite la hechicería incrustada, como reducir una imagen de fondo de color sólido a una sola columna de píxeles copiados para el ancho de la pantalla. Esto utilizará la cantidad mínima de RAM en lugar de cargar una imagen completa. Esto debe hacerse junto con la anulación de la selección de la opción de uso del sistema de archivos de objetos de imagen en la generación de código. Ahora se hace referencia a los mismos datos de imagen por muchas animaciones de imagen que comparten un nombre en el archivo binario generado.

lo mejor es probar

Por último, recuerda probar y comparar los resultados de todos los métodos mencionados en esta publicación. La estimación del uso de RAM depende en gran medida del sistema y las respuestas más confiables a sus preguntas serán generar y compilar código para su dispositivo y diseño. Los diseños de apariencia similar pueden diferir mucho en el uso de RAM debido a la implementación del diseño. Además, el mismo diseño puede tener usos de memoria radicalmente diferentes en hardware diferente. Por ejemplo, algunos dispositivos pueden hacer referencia a los datos de la imagen directamente desde Flash y colocarlos en el búfer de fotogramas. Pero es posible que otros dispositivos necesiten copias de RAM de las imágenes para renderizarlas.

Solo recuerde, hay tantas variables en juego en una plataforma integrada, que es probable que las estimaciones del uso total de RAM de un proyecto sean inexactas. No hay mejor manera de encontrar el uso de RAM de su sistema que ejecutar su diseño en tu hardware – y Altia hace que sea fácil hacer precisamente eso.

¿Quiere saber más sobre la generación de código Altia? Solicite una demostración en vivo con nosotros hoy!