Bienvenue dans la série de blogs des développeurs Altia ! Ces articles sont écrits par nos propres experts en GUI pour présenter des idées de conception et des solutions intelligentes pour développer et déployer des interfaces utilisateur intégrées avec Altia Design, notre éditeur d'interface utilisateur, et Altia DeepScreen, notre générateur de code graphique automatique.

Assurez-vous de s'inscricre pour notre newsletter afin que ce contenu vous soit livré directement !


Réduire l'utilisation de la RAM pour une cible miniGL

Altia miniGL est un Écran profond Altia implémentation d'architecture qui a été utilisée avec des choses comme OpenVG et le rendu logiciel pour générer des conceptions pour des cibles ou des environnements moins performants et à ressources limitées.

Le code Altia miniGL est déjà très optimisé en termes de consommation de RAM, mais si vous cherchez toujours des moyens de réduire la RAM, voici quelques suggestions qui méritent d'être examinées.

Évitez les objets inutiles

Altia miniGL regroupe les données de manière très efficace, mais certains choix de conception peuvent encore améliorer l'efficacité de cette optimisation. Le Animations intégrées et Les objets image utilisent le système de fichiers les options de l'écran de génération de code augmenteront la quantité de RAM utilisée. Ces options forcent votre code DeepScreen à permettre une plus grande variabilité, réduisant ainsi l'optimisation car la plage des données est inconnue. Ce même effet se produit lors de l'utilisation Objets instantanés. Évitez ces objets ou ces options de génération de code si vous n'en avez pas besoin.

Généralement, les prochains candidats à la réduction de RAM sont Objets d'E/S de texte. Ceux-ci peuvent être coupés en vérifiant la longueur de chaque objet afin qu'il ne consomme que la quantité minimale requise de RAM. Vous pouvez ajuster la longueur maximale de la chaîne de texte de votre paramètre de génération de code (mémoire statique) à la longueur en caractères de l'E/S de texte la plus longue possible. Cela peut également économiser de l'espace dans les tableaux de données internes. Si l'une des E/S de texte de ces tableaux n'est pas adressée par un objet langage ou par la logique, elle peut être remplacée par des étiquettes statiques. Les étiquettes statiques sont stockées sur la ROM au lieu de la RAM.

Mêmes images, même nom

Si votre conception contient plusieurs références au même fichier source d'image, assurez-vous que toutes les animations où cette image est utilisée partagent le même nom. Si vous copiez et collez un objet image, le nom est automatiquement incrémenté. Vous pouvez en voir un exemple ci-dessous.

Cela peut être évité en ajoutant _global au nom de la variable d'animation et est également démontré ci-dessous.

Désormais, tous ces différents objets chargeront et référenceront la même instance d'image dans la RAM. Cela permet une magie intégrée comme la réduction d'une image d'arrière-plan de couleur unie à une seule colonne de pixels copiés pour la largeur de l'affichage. Cela utilisera la quantité minimale de RAM par rapport au chargement d'une image entière. Cela doit être fait parallèlement à la désélection de l'option Image Objects use File System sous la génération de code. Désormais, les mêmes données d'image sont référencées par le nombre d'animations d'image qui partagent un nom dans le fichier binaire généré.

le mieux c'est de tester

Enfin, n'oubliez pas de tester et de comparer les résultats de toutes les méthodes mentionnées dans cet article. L'estimation de l'utilisation de la RAM dépend fortement du système et les réponses les plus fiables à vos questions seront de générer et de compiler du code pour votre appareil et votre conception. Des conceptions similaires peuvent différer considérablement dans l'utilisation de la RAM en raison de la mise en œuvre de la conception. De plus, la même conception peut avoir des utilisations de mémoire radicalement différentes sur différents matériels. Par exemple, certains appareils peuvent référencer les données d'image directement à partir de Flash et les placer dans le framebuffer. Mais d'autres appareils peuvent avoir besoin de copies RAM d'images pour les rendre.

N'oubliez pas qu'il y a tellement de variables en jeu sur une plate-forme embarquée que les estimations de l'utilisation totale de la RAM d'un projet sont susceptibles d'être inexactes. Il n'y a pas de meilleur moyen de trouver l'utilisation de la RAM de votre système que d'exécuter votre conception sur votre matériel – et Altia vous permet de le faire facilement.

Vous voulez en savoir plus sur la génération de code Altia ? Demander une démo en direct avec nous aujourd'hui!