Ottimizzazione per le piattaforme Intel Atom durante lo sviluppo di applicazioni per MeeGo

Se state sviluppando applicazioni MeeGo in AppUp, abbiamo alcuni consigli da darvi su come ottimizzare le applicazioni. Se state compilando con il compilatore GNU GCC vi consigliamo di utilizzare questi flag:

    -march=atom     -O3     -flto     -mfpmath=sse     -ffast-math


L'ultimo flag, -ffast-math, velocizzerà notevolmente le operazioni matematiche, specialmente nei cicli, ma può anche causare una perdita di precisione nei risultati.


Vi consigliamo anche di avere numerose sottofunzioni da applicare "inline" prima delle funzioni con circa 10 righe o meno di codice.
Ad esempio:

    inline int max(int a, int b) {
          return a > b ? a : b;
    }

Nell'architettura della CPU Intel Atom* si presume che l'indirizzo di ritorno che è inviato nello stack di chiamata non sia restituito dalla sottofunzione per almeno un breve periodo di tempo. Se la sottofunzione lo restituisce troppo presto, la CPU Atom* imporrà un costo aggiuntivo a tutta l'operazione. L'applicazione di "inline" alle funzioni brevi aiuta a risolvere questa situazione. Si consiglia tuttavia di usare con moderazione "inline". Le funzioni di inline aumentano l'uso della memoria durante il runtime. Utilizzando inline per le funzioni brevi, si riduce il costo imposto dalla CPU Atom senza aumentare troppo l'ingombro della memoria. In linea generale, consigliamo di applicare "inline" solo alle funzioni lunghe all'incirca 10 righe di codice o di meno.

Vi consigliamo inoltre di provare a usare i tipi di dati float invece che doubles. Caricando e memorizzando dati doubles si utilizzerà una maggiore larghezza di banda della memoria. Il miglioramento della velocità ottenuto utilizzando i dati float al posto dei dati doubles è minimo, ma la larghezza di banda della memoria che si è risparmiata viene messa a disposizione di altri processi. Questo migliora le prestazioni complessive del sistema.

È bene ricordarsi che la CPU Intel Atom* è dotata dell'hyperthreading. Su un sistema Atom a core singolo sono disponibili due processori. Si consiglia di tentare di implementare il multithreading nell'applicazione.


0