Benvenuto nella serie di blog per sviluppatori Altia! Questi post sono scritti dai nostri esperti GUI per presentare idee progettuali e soluzioni intelligenti per lo sviluppo e la distribuzione di interfacce utente integrate con Altia Design, il nostro editor dell'interfaccia utente, e Altia DeepScreen, il nostro generatore di codice grafico automatico.

Assicurarsi di iscriviti per la nostra newsletter per ricevere questo contenuto direttamente a te!


Riduzione dell'utilizzo della RAM per un target miniGL

Altia miniGL è un Altia Deep Screen implementazione dell'architettura che è stata utilizzata insieme a cose come OpenVG e il rendering del software per generare progetti per obiettivi o ambienti meno capaci e con risorse limitate.

Il codice Altia miniGL è già molto ottimizzato in termini di consumo di RAM, ma se stai ancora cercando modi per ridurre la RAM, ecco alcuni suggerimenti che vale la pena esaminare.

Evita gli oggetti non necessari

Altia miniGL comprime i dati in modo molto efficiente, ma ci sono alcune scelte di progettazione che possono migliorare ulteriormente l'efficacia di questa ottimizzazione. Il Animazioni integrate ed Gli oggetti immagine utilizzano il file system le opzioni dalla schermata di generazione del codice aumenteranno la quantità di RAM utilizzata. Queste opzioni impongono al codice DeepScreen di consentire una maggiore variabilità, riducendo così l'ottimizzazione perché l'intervallo dei dati è sconosciuto. Questo stesso effetto si verifica durante l'utilizzo Oggetti istantanea. Evita questi oggetti o le opzioni di generazione del codice se non ne hai bisogno.

In generale, i prossimi candidati per la riduzione della RAM sono Oggetti di I/O di testo. Questi possono essere tagliati controllando la lunghezza di ogni oggetto in modo che consumi solo la quantità minima richiesta di RAM. È possibile regolare la generazione del codice impostando la lunghezza massima della stringa di testo (memoria statica) sulla lunghezza in caratteri dell'I/O di testo più lungo possibile. Ciò può anche risparmiare spazio negli array di dati interni. Se uno qualsiasi degli I/O di testo in questi array non viene indirizzato da un oggetto linguaggio o dalla logica, è possibile modificarli in etichette statiche. Le etichette statiche sono memorizzate sulla ROM invece che sulla RAM.

Stesse immagini, stesso nome

Se il tuo progetto contiene più riferimenti allo stesso file di origine dell'immagine, assicurati che tutte le animazioni in cui viene utilizzata questa immagine condividano lo stesso nome. Se copi e incolli un oggetto immagine, il nome viene incrementato automaticamente. Puoi vedere un esempio di questo di seguito.

Ciò può essere evitato aggiungendo _global al nome della variabile di animazione ed è anche illustrato di seguito.

Ora, tutti questi diversi oggetti caricheranno e faranno riferimento alla stessa istanza di immagine nella RAM. Ciò consente la magia incorporata come la riduzione di un'immagine di sfondo in tinta unita a una singola colonna di pixel copiati per la larghezza del display. Ciò utilizzerà la quantità minima di RAM rispetto al caricamento di un'intera immagine. Questo deve essere fatto insieme a deselezionare l'opzione Gli oggetti immagine utilizzano il file system durante la generazione del codice. Ora gli stessi dati dell'immagine sono referenziati dal fatto che molte animazioni dell'immagine condividono un nome nel file binario generato.

È meglio testare

Infine, ricorda di testare e confrontare i risultati di tutti i metodi menzionati in questo post. La stima dell'utilizzo della RAM dipende fortemente dal sistema e le risposte più affidabili alle tue domande saranno la generazione e la compilazione del codice per il tuo dispositivo e design. Disegni dall'aspetto simile possono differire notevolmente nell'utilizzo della RAM a causa dell'implementazione del design. Inoltre, lo stesso design può avere utilizzi di memoria radicalmente diversi su hardware diverso. Ad esempio, alcuni dispositivi possono fare riferimento ai dati dell'immagine direttamente da Flash e inserirli nel framebuffer. Ma altri dispositivi potrebbero dover disporre di copie RAM delle immagini per renderle.

Ricorda solo che ci sono così tante variabili in gioco su una piattaforma incorporata che è probabile che le stime dell'utilizzo totale della RAM di un progetto siano imprecise. Non c'è modo migliore per trovare l'utilizzo della RAM del tuo sistema che eseguire il tuo progetto il tuo hardware – e Altia rende facile fare proprio questo.

Vuoi saperne di più sulla generazione del codice Altia? Richiedi una demo dal vivo con noi oggi!