Que les parece mas rapido para un mapa de durezas?

Started by JaViS, December 31, 2014, 02:34:19 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JaViS

Estaba pensando en alternativas a map_get_pixel que a veces es muy lento, y me surgio la siguiente pregunta:


¿Que es mas rapido, leer de un mapa de bits con map_get_pixel, o leer de un array del tamaño del mapa (HD) en memoria?


Saludos!
Working on Anarkade. A couch multiplayer 2D shooter.

Futu-block

Alg precido hace drumpi con su ''echo''
Aunque si la pantalla el pequeña [unos 1500*1500] no deberia importar

JaViS

Y, la resolucion es HD, asi que anda por ese tamaño, pero lo que me interesa saber es si vale la pena migrar lo que tengo con map_get_pixel a arrays, considerando el tema del rendimiento.
Working on Anarkade. A couch multiplayer 2D shooter.

Futu-block

Bueno, es que un mapazo del copon y detectarlo pixel por pixel tiene que ser un agobio

gecko

El consumo de memoria no sería demasiado?

En una época había hecho unas pruebas allocando arrays medio gigantes para mapas de tiles, y en las maquinas mas lentas se notaban varios segundos de retraso al momento de la creación, así que creo que dependiendo el caso es algo a tener en cuenta. (si vas a usar el mismo mapa mucho tiempo no sería problema, pero si vas a crear y destruir mapas grandes todo el tiempo si es algo que vale la pena considerar)
Torres Baldi Studio
http://torresbaldi.com

JaViS

El array se crearía una vez por pantalla, así que supongo que podría funcionar. Es cierto que usaría mucha memoria, pero un mapa del mismo tamaño no usa lo mismo? No se..

De todos modos lo que busco es rendimiento. Mal get pixel parece ser muy lento
Working on Anarkade. A couch multiplayer 2D shooter.

Futu-block

La cuestion es ir haciendo pruebas en plan ''borricas'' y ver e rendimiento

gecko

Si, pensándolo bien, dependiendo la cantidad de informacion que necesites por "pixel", puede ser hasta mucho mas eficiente en cuanto a uso de memoria no usar un mapa de durezas sino un array de ints, o de bits. (en caso de que necesites pocos datos por pixel -usando int-, o en el mejor de los casos necesites solo un true/false -usando bit- )

O ya yéndome a un caso extremo también se podría allocar un bloque de memoria y moverte con un puntero al dato que necesites.

Creo que seria muy interesante ver pruebas de rendimiento sobre esto.  ::)

Saludos!
Torres Baldi Studio
http://torresbaldi.com

JaViS

Voy a hacer las pruebas y comentarles :) yo tambien creo que deberia ser mas rapido
Working on Anarkade. A couch multiplayer 2D shooter.