Optimierung für Intel-Atom-Plattformen bei der Entwicklung von MeeGo-Apps

Wenn Sie MeeGo-Anwendungen für AppUp entwickeln, können wir Ihnen einige Empfehlungen für die Optimierung Ihrer Apps geben. Wenn Sie den GNU-GCC-Compiler verwenden, empfehlen wir die folgenden Flags:

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


Das letzte Flag, -ffast-math, wird mathematische Operationen besonders in Schleifen deutlich schneller machen, kann aber auch dazu führen, dass Ihre Ergebnisse weniger genau sind.


Außerdem empfehlen wir Ihnen, dass Sie, falls Sie viele Subfunktionen haben, vor Funktionen mit 10 oder weniger Codezeilen „inline“ anwenden.
Beispiel:

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

In der Architektur des Intel Atom Prozessors wird davon ausgegangen, dass eine in den Call-Stack gepushte Rücksprungadresse während einer gewissen Mindestzeitdauer nicht abgerufen wird. Wenn die Subfunktion schneller beendet wird, erhöht sich beim Intel Atom Prozessor die Prozessorzeit für die gesamte Operation. Die Anwendung von „inline“ bei kurzen Funktionen kann diese Situation entschärfen. Wir empfehlen Ihnen jedoch, „inline“ nur sparsam zu verwenden. Funktionen mit „inline“ einzubinden, erhöht den Speicherbedarf während der Laufzeit. Handelt es sich nur um kurze Funktionen, dann reduziert sich durch „inline“ die zusätzliche Prozessorzeit, ohne dass sich der Speicherbedarf allzu sehr erhöht. Als Faustregel empfehlen wir, „inline“ nur bei Funktionen mit bis zu ca. 10 Codezeilen zu verwenden.

Weiterhin empfehlen wir, dass Sie versuchen, float-Datentypen anstelle von double-Datentypen zu verwenden. Das Laden und Speichern von double-Werten verbraucht zusätzliche Speicherbandbreite. Der Geschwindigkeitsvorteil durch die Verwendung von float- anstelle von double-Werten ist zwar nur sehr gering, aber die eingesparte Speicherbandbreite steht dann anderen Prozessen zur Verfügung. Dadurch verbessert sich die Gesamtsystemleistung.

Es sei an dieser Stelle noch daran erinnert, dass es sich beim Intel® Atom™ Prozessor um eine Hyperthreading-CPU handelt. Bei einem System mit einer Einkern-Atom-CPU werden deshalb zwei verfügbare Prozessoren angezeigt. Es ist also sehr sinnvoll, wenn Sie bei Ihrer Anwendung versuchen, Multithreading zu implementieren.


0