Problema de tamaño

Started by lou, January 13, 2010, 09:31:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

lo de varios dcb no es mas que la propuesta que hice hace tiempo para el launcher del apagame... no es mas que ejecutar desde un dcb otro bgdi con otro dcb como parametro...

nada mas... no es un secreto, esta el codigo que yo hice en el foro...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

lou

Veamos si entiendo el concepto:
Compilo, por ejemplo:


program tablero;

global
    int tablero[1024][1024];
begin
    loop
        frame;
    end
end


Luego, ese .dcb, lo ejecuto desde mi programa principal (ya buscare como por el foro:P), entonces podría usar la matriz tablero en mi programa principal? si es asi, me soluciona el problema completamente, sino es asi, tendre que seguir buscando..

Muchas gracias!:D

SplinterGU

por que no deberia funcionar? si te referis a varios dcb, no, claro que no funciona... cada dcb es un mundo separado.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Esa es la idea Lou, pero... Lo que ahora no sé decirte es si un .dcb en ejecución puede acceder a las GLOBAL de otro .dcb invocado... Ahora que lo recuerdo Prg usaba varios .dcb para diferentes opciones de su editor FPG, pero no eran "tareas" que se relacionen entre sí... Dile por privado a ver :P
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Rein (K´)ah Al-Ghul

Quote from: SplinterGU on January 14, 2010, 11:33:44 PM
Quote from: osk on January 14, 2010, 02:28:29 AM
Quote from: SplinterGU on January 14, 2010, 02:19:37 AM
primero, no uses byte o tipos menores a 32bits... lo hace mas lento.

donde lo estas compilando, a mi me tarda 0 segundos en compilar tu ejemplo.

¿No importa, pues, desaprovechar memoria ram? Ya se sabe que hoy en día es casi infinita, pero a mi siempre me enseñaron que los tipos debían de ser acorde al tamaño del dato que queríamos guardar...Pero vaya, da lo mismo supongo.

La cosa es que los actuales procesadores manejan mejor el alineamiento de acorde a el tamaño de palabra del procesador, en la mayoria de los casos 32 bits... por eso va mas rapido...
...
Entonces ganas performance al usar datos de 32 bites...
aunq desperdicias memoria...
Esto no importa tanto si es para PC, pero si es para digamos la Wiz, si importa ese uso de memoria extra...

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

SplinterGU

exacto... ganas mas velocidad en wiz tambien...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

lou

gracias por las respuestas!

Bueno, si no es posible tendre que conformarme con hacer un mapa no demasiado grande, y esperar un poco al compilar...

Ahora me asalta otro problema, a la hora de guardar las partidas... si no consigo solucionarlo pronto me tendreis por aqui rogando de vuestra sabiduria.. otra vez XD

Un saludo!

Rein (K´)ah Al-Ghul

Quote from: osk on January 14, 2010, 02:28:29 AM...
pero a mi siempre me enseñaron que los tipos debían de ser acorde al tamaño del dato que queríamos guardar...Pero vaya, da lo mismo supongo.
en mi caso tmb me enseñaron a usar los datos segun lo q se necesitara guardar
En el caso de trabajar con estructuras de datos estas se acomodan para formar bloques de 32 bit??
por ejemplo una estructura de 4bytes es igual a 1 int...

perdon que moleste con esto, pero necesito saber como tener un rendimineto aceptable usando la menor cantidad de memoria posible...
osea sin irme al extremos de usar solo datos Int Dword Float y string

Si se obtiene mayor velocidad con esos tipos de datos, para que existe los otros??

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

SplinterGU

a ver... esto ya se explico, pero vamos de nuevo...

si tenes 4 elementos de tipo byte el problema no esta en lo que ocupa sino en el acceso, para el acceso al valor, al procesador le resulta mas rapido que este alineado a 32 bits... (procesador y modos 32bits)

los otros datos existen porque existe un mundo exterior mas alla de nuestra aplicacion, y muchas veces podemos necesitar interfacear o comunicarnos con este... y por ende, tenemos que ser capaces de hablar el mismo lenguaje... por ejemplo, un mensaje tcp a alguna aplicacion, levantar un archivo de datos (por ejemplo, algun archivo grafico), etc.

o simplemente, no nos importa la velocidad pero si el espacio.

ademas de que algunos datos internos son bytes (como las paletas de 8 bytes, o los rgb)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Una vez mas impera el conflicto "memoria vs CPU" ;D

Por cierto, Splinter, te tenía que reportar algo acerca de un array de tipo BYTE o algo así que no me leía bien Bennu, y que al pasarlo a INT ya iba bien, pero no encuentro el código. Creo que es del propio Doggy, de un array bidimensional dentro de una struct. No se si podré reproducirlo y aislarlo, pero lo intentaré. Lo comento por si a alguien más le pasa.
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)

Rein (K´)ah Al-Ghul

No habia pensado en la comunicacion con el exterior :P

Quote from: Drumpi on January 19, 2010, 01:30:47 AM
Una vez mas impera el conflicto "memoria vs CPU" ;D
...
En algun momento toca eso...
Despues te das por vencido y terminas usando solo datos de 4bytes
jajjaja

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

SplinterGU

Quote from: Drumpi on January 19, 2010, 01:30:47 AM
Una vez mas impera el conflicto "memoria vs CPU" ;D

Por cierto, Splinter, te tenía que reportar algo acerca de un array de tipo BYTE o algo así que no me leía bien Bennu, y que al pasarlo a INT ya iba bien, pero no encuentro el código. Creo que es del propio Doggy, de un array bidimensional dentro de una struct. No se si podré reproducirlo y aislarlo, pero lo intentaré. Lo comento por si a alguien más le pasa.

cuando lo recuerdes me lo comentas con un ejemplo, estaremos atentos por si le pasa a alguien mas, gracias.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2