SDCC + optimización: en busca de los 50 fps

Programando el Amstrad en BASIC, C, etc.
Avatar de Usuario
ronaldo
Forum Addict
Forum Addict
Mensajes: 358
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: SDCC + optimización: en busca de los 50 fps

Mensajepor ronaldo » Jue 01 Oct , 2015 11:43 am

Pues imagino que es una combinación del tipo de PC que estés usando + tiempo adicional si usas Cygwin (y algo más si es Cygwin32) + las opciones de compilación bestia que añaden mucho tiempo a la compilación. Aún así, 80 minutos me parece muy salvaje. Lo más que he llegado yo a tardar compilando un proyecto son 20 o 30 minutos, metiéndole optimización a tope. Pero claro, depende mucho del código que tenga que generar y de cómo esté programado. Por ejemplo, el hecho de que haya quitado una matriz inicializada localmente por otra inicializada global le debe haber ahorrado mucho tiempo de compilación, ya que el código de inicialización desaparece.

Avatar de Usuario
AmstradGamer
Forero habitual
Forero habitual
Mensajes: 189
Registrado: Dom 08 Jun , 2014 10:08 am

Re: SDCC + optimización: en busca de los 50 fps

Mensajepor AmstradGamer » Jue 01 Oct , 2015 12:16 pm

Tengo un trozo de código, del cual no estoy orgulloso, que creo que es el origen de consumir tanto tiempo compilando.

Son un montón de "IFs", con un montón de "ORs". Se debe dejar la piel el optimizador calculando rutas de ejecución en función de los condicionales.

Si tengo tiempo o se me ocurre una solución mejor, lo resolveré, aunque ya he comentado que el tiempo de compilación no me importa demasiado ya que sin optimizaciones es infinitamente más rápido y ese código está funcionando bien al fin y al cabo y a pesar de todo no supone una ralentización del juego en tiempo de ejecución, que es lo que me sí me preocuparía.

Otra ventaja de ese código es muy sencillo entender qué hace. En el fondo no está tan mal. :oops:

Un saludo.

Avatar de Usuario
ronaldo
Forum Addict
Forum Addict
Mensajes: 358
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: SDCC + optimización: en busca de los 50 fps

Mensajepor ronaldo » Sab 03 Oct , 2015 9:56 am

Se me olvidaba comentar esto: uno de los motivos principales que hacen a SDCC un compilador lento es que no es multihilo ni multiproceso. Cuando tiene que compilar lo hace secuencialmente utilizando un único núcleo. Esto reduce mucho el rendimiento, ya que la tendencia en procesadores es a hacer núcleos ligeros y más núcleos.

Entreteniéndose un poco, se podría forzar a compilar en paralelo varios ficheros lanzando las compilaciones por separado. Con eso se aceleraría bastante la compilación.


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic