Bennu Game Development

Foros en Español => Mesa de Ayuda => Mensaje iniciado por: Hola en Enero 26, 2019, 09:43:33 pm

Título: Consumo de recursos
Publicado por: Hola en Enero 26, 2019, 09:43:33 pm
Hola, quería hacer una pregunta rápida. Usar variables de tipo string, consume más recursos de memoria que si utilizara puras variables de tipo numérico como word, int, etc?? A lo mejor depende de la cantidad de cadenas o numeros que vaya a utilizar..? Mm, bueno, igual quería saber vuestra opinión.


Salu2
Título: Re:Consumo de recursos
Publicado por: panreyes en Enero 26, 2019, 10:21:19 pm
Bastantes recursos más. Piensa que internamente una string es como una array de chars de tamaño indeterminado.

Lo ideal es utilizar el tipo que más convenga, o al menos int para los números y float para decimales :)
Título: Re:Consumo de recursos
Publicado por: Hola en Enero 26, 2019, 11:17:19 pm
Si, eso pensé. Gracias.
Título: Re:Consumo de recursos
Publicado por: Arcontus en Enero 27, 2019, 03:29:46 pm
Bastantes recursos más. Piensa que internamente una string es como una array de chars de tamaño indeterminado.

Lo ideal es utilizar el tipo que más convenga, o al menos int para los números y float para decimales :)
Efectivamente las Strings consumen mucha más memoria que cualquier otro tipo de datos por las razones que Panreyes te ha dado, pero con la potencia de cálculo de los procesadores actuales no deberías notar ese overhead. Eso no quiere decir que este bien usar strings para almacenar datos que no lo sean, pero es más por un tema legibillidad y organización.

Llendo esto al extremo, podrías pensar que usar BOOL para 0 o 1 (false o true) (1 bit) debería ocupar menos en memoria que un tipo BYTE (8 bits), pero a la práctica ocupan exactamente lo mismo (por otros temas de arquitectura 32 bits) (16 bits que es una palabra o unidad mínima en procesadores de 32bits).  https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra (https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra)

Título: Re:Consumo de recursos
Publicado por: Drumpi en Junio 07, 2019, 11:59:13 am
Llendo esto al extremo, podrías pensar que usar BOOL para 0 o 1 (false o true) (1 bit) debería ocupar menos en memoria que un tipo BYTE (8 bits), pero a la práctica ocupan exactamente lo mismo (por otros temas de arquitectura 32 bits) (16 bits que es una palabra o unidad mínima en procesadores de 32bits).  https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra (https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra)

Tenía entendido que lo que se hacía normalmente era reservar una zona de memoria para los datos tipo bool, y agruparlos en bytes o words, y luego usar operaciones de máscara para obtener su valor.
O a lo mejor eso era cuando la memoria era demasiado cara para almacenar esos tipos de datos de forma independiente ¿no?
Título: Re:Consumo de recursos
Publicado por: SplinterGU en Junio 07, 2019, 08:05:45 pm
Llendo esto al extremo, podrías pensar que usar BOOL para 0 o 1 (false o true) (1 bit) debería ocupar menos en memoria que un tipo BYTE (8 bits), pero a la práctica ocupan exactamente lo mismo (por otros temas de arquitectura 32 bits) (16 bits que es una palabra o unidad mínima en procesadores de 32bits).  https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra (https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra)

Tenía entendido que lo que se hacía normalmente era reservar una zona de memoria para los datos tipo bool, y agruparlos en bytes o words, y luego usar operaciones de máscara para obtener su valor.
O a lo mejor eso era cuando la memoria era demasiado cara para almacenar esos tipos de datos de forma independiente ¿no?

eso se puede hacer en C, en bennugd no...
Título: Re:Consumo de recursos
Publicado por: Arcontus en Junio 07, 2019, 10:51:14 pm
Llendo esto al extremo, podrías pensar que usar BOOL para 0 o 1 (false o true) (1 bit) debería ocupar menos en memoria que un tipo BYTE (8 bits), pero a la práctica ocupan exactamente lo mismo (por otros temas de arquitectura 32 bits) (16 bits que es una palabra o unidad mínima en procesadores de 32bits).  https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra (https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra)

Tenía entendido que lo que se hacía normalmente era reservar una zona de memoria para los datos tipo bool, y agruparlos en bytes o words, y luego usar operaciones de máscara para obtener su valor.
O a lo mejor eso era cuando la memoria era demasiado cara para almacenar esos tipos de datos de forma independiente ¿no?

eso se puede hacer en C, en bennugd no...
Correctisimo Drumpi, pero solo se utiliza si quieres agrupar bools en un byte para que ocupen menos memoria. Teniendo en cuenta cuando de desarrolló C esto tiene sentido ya que la memoria era bastante escasa, pero hoy en día no creo que lo haga nadie mas que hackers y con otros menesteres más oscuros.

Título: Re:Consumo de recursos
Publicado por: SplinterGU en Junio 08, 2019, 01:40:43 am
Llendo esto al extremo, podrías pensar que usar BOOL para 0 o 1 (false o true) (1 bit) debería ocupar menos en memoria que un tipo BYTE (8 bits), pero a la práctica ocupan exactamente lo mismo (por otros temas de arquitectura 32 bits) (16 bits que es una palabra o unidad mínima en procesadores de 32bits).  https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra (https://es.wikipedia.org/wiki/Unidades_de_informaci%C3%B3n#Palabra)

Tenía entendido que lo que se hacía normalmente era reservar una zona de memoria para los datos tipo bool, y agruparlos en bytes o words, y luego usar operaciones de máscara para obtener su valor.
O a lo mejor eso era cuando la memoria era demasiado cara para almacenar esos tipos de datos de forma independiente ¿no?

eso se puede hacer en C, en bennugd no...
Correctisimo Drumpi, pero solo se utiliza si quieres agrupar bools en un byte para que ocupen menos memoria. Teniendo en cuenta cuando de desarrolló C esto tiene sentido ya que la memoria era bastante escasa, pero hoy en día no creo que lo haga nadie mas que hackers y con otros menesteres más oscuros.



yo lo uso en bennugd2... y creo que en 1 tambien...
Título: Re:Consumo de recursos
Publicado por: Drumpi en Junio 10, 2019, 12:34:06 pm
Juer, cómo estoy. Pensaba que hablábamos de C, de las entrañas de Bennu :S
Título: Re:Consumo de recursos
Publicado por: SplinterGU en Junio 10, 2019, 02:26:14 pm
Juer, cómo estoy. Pensaba que hablábamos de C, de las entrañas de Bennu :S

en las entrañas, claro