Optimización para plataformas Intel Atom al desarrollar para aplicaciones MeeGo
-
-march=atom -O3 -flto -mfpmath=sse -ffast-math
El último indicador, -ffast-math, acelerará de manera significativa sus operaciones matemáticas especialmente en bucles, pero también puede causar que sus resultados pierdan precisión.
También recomendamos que, si tiene muchas subfunciones que intenta aplicar "inline" antes de estas funciones con unas 10 líneas de código o menos.
Ejemplos tales como:
-
inline int max(int a, int b) {
return a > b ? a : b;
}
En la arquitectura de CPU de Intel Atom*, se supone que la dirección de devolución que se incrusta en la pila de llamadas no aparecerá (devuelta de la subfunción) durante un corto plazo de tiempo como mínimo. Si la subfunción se devuelve demasiado pronto, la CPU de Atom* impondrá realmente un coste adicional a toda la operación. Aplicar "inline" a funciones cortas ayudarán a mitigar esta situación. Sin embargo, recomendamos que aplique "inline" con prudencia. Las funciones de inline aumentarán la huella digital de la memoria durante el runtime. Las funciones cortas de inline reducirán el coste que Atom impone sin aumentar demasiado la huella digital de la memoria. Por regla general, recomendamos aplicar "inline" solo a funciones con aproximadamente 10 líneas de código o menos.
También recomendamos que intente utilizar tipos de datos float en vez de tipos de datos doubles. Cargar y almacenar doubles utilizará ancho de banda de memoria adicional. La mejora de la velocidad por utilizar float en lugar de doubles es mínima, pero el ancho de banda de memoria guardado estará disponible para otros procesos. Esto mejorará el rendimiento general del sistema.
Un breve recordatorio de que la CPU de Intel Atom* tiene hyperthreading. En un solo sistema Atom básico, verá dos procesadores disponibles. Es muy recomendable que intente implementar múltiples subprocesos en su aplicación.