no me va el comando -Ca de bennu para autodeclaraciones

Started by DCelso, November 11, 2016, 09:55:24 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

DCelso, amigo mío, te estás malacostumbrando demasiado a Java :D Te estás volviendo vago ¡recuerda tus raices! Vuelve al lado puro de la programación en C :D
Ya en serio, si tanto te molesta tener que declarar las variables públicas ¡no lo hagas! Yo no suelo usarlas porque entre que las tienes que declarar, tienes que usar un tipo específico con ellas, tienes que mantener un orden en su declaración (y ojo con las referencias cruzadas) y que teóricamente son de acceso más lento, prefiero gastar una variable global con ello, o tratar con punteros en los parámetros (y créeme, he testeado bastante a fondo todo el sistema de punteros de Bennu, revisa el código del Tilemap Editor si tienes narices :D ).

No digo que no se usen, eso ya va con el estilo de cada uno, y el mío es no usarlas. Pero esto es Bennu, cada lenguaje tiene sus particularidades y hay que lidiar con ellas. A mi no me gusta el recolector de basuras de Java, pero trabajar con punteros sería una pesadilla, y he leido que el lenguaje es más eficiente usándolo que si andas controlándolo todo manualmente.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

Quote from: DCelso on November 14, 2016, 08:14:20 PM
Una opción de preparseo que buscase todos los procesos declarados y sus variables públicas y creara sus declaraciones antes de compilar sería bastante útil.  No se sí será dificil al mismo algoritmo "-Ca" que ahora busca todos los procesos que hay meterle que también saque su variables públicas a la vez que el nombre del proceso. Ahora la información de tipo y variables públicas está en la implementación del proceso.

process nombreproceso
public
  variables publicas.
begin
  lo que sea.
end

por lo tanto ahí tienes el nombre de las variables publicas y su tipo.

no, no es asi, ahora mismo no busca los procesos y los declara, los declara en base a su uso... por ejemplo...

vos tenes esto en tu codigo...

...
pid = proceso1( param1, param2, param3 ); // en este punto se declara el proceso en base a los tipos de datos que se estan usando
...

donde:
   param1 es variable tipo string
   param2 es variable tipo int
   param3 es variable tipo float

ahora luego escribis el proceso asi:

process proceso1( int param1, float param2, int param3 )
begin
...
end

el proceso en cuestion, en este caso se declaro en el motor y en el dcb asi

process proceso1( string param1, int param2, float param3 )
...

esto fuerza en que todos los parametros que entran a la funcion sean convertidos (a la fuerza) en los tipos esperados realmente por la funcion... con lo que no solo hay perdida de performance, sino que tambien hay consumo extra de memoria, y posible perdidas de datos, incluso puede dar errores de compilacion de tipo de parametro invalido, segun los datos usados.

y me olvidaba, incluso el retorno puede ser de diferente tipo al de la funcion real... y esto pasa por no declarar las funciones/procesos anteriormente a su uso, y declararlas automaticamente....
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: Drumpi on November 15, 2016, 01:59:57 AM
DCelso, amigo mío, te estás malacostumbrando demasiado a Java :D Te estás volviendo vago ¡recuerda tus raices! Vuelve al lado puro de la programación en C :D
Ya en serio, si tanto te molesta tener que declarar las variables públicas ¡no lo hagas! Yo no suelo usarlas porque entre que las tienes que declarar, tienes que usar un tipo específico con ellas, tienes que mantener un orden en su declaración (y ojo con las referencias cruzadas) y que teóricamente son de acceso más lento, prefiero gastar una variable global con ello, o tratar con punteros en los parámetros (y créeme, he testeado bastante a fondo todo el sistema de punteros de Bennu, revisa el código del Tilemap Editor si tienes narices :D ).

No digo que no se usen, eso ya va con el estilo de cada uno, y el mío es no usarlas. Pero esto es Bennu, cada lenguaje tiene sus particularidades y hay que lidiar con ellas. A mi no me gusta el recolector de basuras de Java, pero trabajar con punteros sería una pesadilla, y he leido que el lenguaje es más eficiente usándolo que si andas controlándolo todo manualmente.

muy bien drumpi!

con respecto a las globales vs locales vs publicas, no deberia haber una diferencia de rendimiento notable...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

¿Entonces es recomendable declarar los procesos y funciones para ganar rendimiento? ¿O basta con escribir el proceso antes de su uso? Porque declares no uso, pero ordenar los procesos (o sea, sus includes) sí que lo hago, sí :D

Quote from: SplinterGU on November 15, 2016, 03:32:53 AM
Quote from: Drumpi on November 15, 2016, 01:59:57 AM
DCelso, amigo mío, te estás malacostumbrando demasiado a Java :D Te estás volviendo vago ¡recuerda tus raices! Vuelve al lado puro de la programación en C :D
Ya en serio, si tanto te molesta tener que declarar las variables públicas ¡no lo hagas! Yo no suelo usarlas porque entre que las tienes que declarar, tienes que usar un tipo específico con ellas, tienes que mantener un orden en su declaración (y ojo con las referencias cruzadas) y que teóricamente son de acceso más lento, prefiero gastar una variable global con ello, o tratar con punteros en los parámetros (y créeme, he testeado bastante a fondo todo el sistema de punteros de Bennu, revisa el código del Tilemap Editor si tienes narices :D ).

No digo que no se usen, eso ya va con el estilo de cada uno, y el mío es no usarlas. Pero esto es Bennu, cada lenguaje tiene sus particularidades y hay que lidiar con ellas. A mi no me gusta el recolector de basuras de Java, pero trabajar con punteros sería una pesadilla, y he leido que el lenguaje es más eficiente usándolo que si andas controlándolo todo manualmente.

muy bien drumpi!

con respecto a las globales vs locales vs publicas, no deberia haber una diferencia de rendimiento notable...

Y sin embargo hace unos años me hablaste de una prueba de Pixel o Josebita o yo que se quien, que notó que el acceso a locales era el doble de lento o más que el acceso a variables privadas... o globales, no recuerdo. Sé que surgió con motivo del motor de scroll tileado...
:P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

Quote from: Drumpi on November 15, 2016, 08:09:40 PM
¿Entonces es recomendable declarar los procesos y funciones para ganar rendimiento? ¿O basta con escribir el proceso antes de su uso? Porque declares no uso, pero ordenar los procesos (o sea, sus includes) sí que lo hago, sí :D

Quote from: SplinterGU on November 15, 2016, 03:32:53 AM
Quote from: Drumpi on November 15, 2016, 01:59:57 AM
DCelso, amigo mío, te estás malacostumbrando demasiado a Java :D Te estás volviendo vago ¡recuerda tus raices! Vuelve al lado puro de la programación en C :D
Ya en serio, si tanto te molesta tener que declarar las variables públicas ¡no lo hagas! Yo no suelo usarlas porque entre que las tienes que declarar, tienes que usar un tipo específico con ellas, tienes que mantener un orden en su declaración (y ojo con las referencias cruzadas) y que teóricamente son de acceso más lento, prefiero gastar una variable global con ello, o tratar con punteros en los parámetros (y créeme, he testeado bastante a fondo todo el sistema de punteros de Bennu, revisa el código del Tilemap Editor si tienes narices :D ).

No digo que no se usen, eso ya va con el estilo de cada uno, y el mío es no usarlas. Pero esto es Bennu, cada lenguaje tiene sus particularidades y hay que lidiar con ellas. A mi no me gusta el recolector de basuras de Java, pero trabajar con punteros sería una pesadilla, y he leido que el lenguaje es más eficiente usándolo que si andas controlándolo todo manualmente.

muy bien drumpi!

con respecto a las globales vs locales vs publicas, no deberia haber una diferencia de rendimiento notable...

Y sin embargo hace unos años me hablaste de una prueba de Pixel o Josebita o yo que se quien, que notó que el acceso a locales era el doble de lento o más que el acceso a variables privadas... o globales, no recuerdo. Sé que surgió con motivo del motor de scroll tileado...
:P

con escribirlas antes esta bien...

si te dije eso no lo recuerdo, es posible, aunque me suena que no deberia ser tan lento... tengo que revisarlo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2