Pregunta

Me gustaría seleccionar las optimizaciones del compilador para generar la aplicación más rápida posible.

¿Cuál de las siguientes configuraciones debo establecer como verdadera?

  • Eliminación de tienda muerta
  • Elimine expresiones duplicadas dentro de bloques y funciones básicos.
  • Habilitar variable de inducción de bucle y reducción de fuerza.
  • Habilitar la programación de instrucciones Pentium
  • Ampliar las funciones intrínsecas comunes
  • Optimizar saltos
  • Usar variables de registro

También existe la opción 'Generar el código más rápido posible', que obviamente configuré en verdadero.Sin embargo, cuando configuro esto en verdadero, todas las opciones anteriores todavía están configuradas en falso.

Entonces, me gustaría saber si alguna de las opciones anteriores acelerará la aplicación si las configuro en verdadero.

¿Fue útil?

Solución

  

Así que me gustaría saber si alguna de las opciones anteriores acelerará la aplicación si les establece en true?

Sé que algunos me odies por esto, pero aquí nadie te puedo contestar con la verdad . Tienes que probar su programa con y sin ellos, y perfil cada compilación y ver cuáles son los resultados. Conjeturas no encontrar a nadie en cualquier lugar.

Los compiladores ya lo hacen toneladas (!) De gran optimización, con o sin su permiso. Su mejor opción es escribir el código en cuestión limpia y organizada, y se preocupan por la mantenibilidad y extensibilidad. Como me gusta decir:. Código de ahora, optimizar la tarde

Otros consejos

No microgestión a la optimización individual. los autores de compiladores son personas muy inteligentes - sólo a su vez a todos en menos que vea una específica para no necesitar. Su tiempo es mejor gastado mediante la optimización de su código (mejorar la complejidad algorítmica de sus funciones, etc.) en lugar de tocar el violín con las opciones del compilador.

Mi otro consejo, utilizar un compilador diferente. Intel tiene una gran reputación como un compilador de optimización. VC y GCC, por supuesto, también son excelentes opciones.

Se puede mirar el código generado con diferentes opciones compiladas para ver cuál es el más rápido, pero entiendo que hoy en día muchas personas no tienen experiencia haciendo esto.

Por lo tanto, sería útil para el perfil de la aplicación. Si hay una parte obvia que requiere velocidad, añadir algo de código para ejecutarlo mil o diez millones de veces y el tiempo que utilizan utime() si está disponible. El bucle debe correr lo suficiente para que otros procesos que se ejecutan de forma intermitente no afectan el resultado de cada diez a veinte segundos es un rango de referencia popular. O ejecutar múltiples ensayos de tiempo. Compilar diferentes casos de prueba y ejecutarlo para ver cuál funciona mejor.

Pasar una o dos horas jugando con las opciones de optimización revelará rápidamente que la mayoría tienen efecto menor. Sin embargo, ese mismo tiempo dedicado a pensar en la esencia del algoritmo y hacer pequeños cambios (eliminación de código es especialmente efectiva) a menudo puede muy mejorar el tiempo de ejecución.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top