Autor
|
Tema: [Opinion] Problema acerca de optimización en código - Uso dinámico de arrays (Leído 8,632 veces)
|
engel lex
|
hey gente! XD calma! ivancea96 hay muchas cosas que requieren arrays dinamicos en general realloc es bastante usada... Miky Gonzalez con calma XD él está expresando su opinión y desde tu primera respuesta hacia el, fue un poco aspera hay opiniones diferentes... ambas son importantes, pero deben ser tomadas en cuenta, posiblemente cada via sea más valida según el caso especifico, pero requeriría un análisis puntual del problema
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
Ah no Sólo intento mostrarle que igual los arrays fijos/estáticos en memoria no son las soluciones a todos nuestros problemas y necesitamos de vez en cuando hacer las cosas para un todo, dinámicamente hablando; porque no en todo sabemos que nos vamos a encontrar ni la longitud/tamaño de datos que vamos a almacenar. Saludos.
|
|
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
ivancea96 hay muchas cosas que requieren arrays dinamicos en general realloc es bastante usada...
Y no estoy en contra del realloc. Estoy en contra de abusar del realloc. Suponiendo que vamos a analizar un archivo de 1GB de datos, ¿cómo se supone que puedes saber los elementos a analizar?, voy a inventarme el contenido de un archivo:
Suponiendo que tengas 1GB de datos, no creo que sea necesario guardarlo todo en un array (...) Pero a parte de eso: Según el método de potencias de 2, si hay 1GB+1byte de elementos, acabarías ocupando 2GB de RAM, que no es una broma. Y es sólo un ejemplo. Y repito, en ningún momento he hablado yo de arrays estáticos. Siempre he hablado de dinámicos y he orientado todo lo que he dicho a arrays dinámicos. No se trata de obtener el tamaño del array que vamos a necesitar, se trata de obtener el incremento en el realloc.
|
|
|
En línea
|
|
|
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
Suponiendo que tengas 1GB de datos, no creo que sea necesario guardarlo todo en un array (...)
Pero a parte de eso: Según el método de potencias de 2, si hay 1GB+1byte de elementos, acabarías ocupando 2GB de RAM, que no es una broma. Y es sólo un ejemplo.
Y repito, en ningún momento he hablado yo de arrays estáticos. Siempre he hablado de dinámicos y he orientado todo lo que he dicho a arrays dinámicos.
No se trata de obtener el tamaño del array que vamos a necesitar, se trata de obtener el incremento en el realloc. Te respondo con algo que ya escribí: En cuanto a almacenar 1GB de datos para luego convertirlos a 2GB sólo por añadir 1 datos más eso es problema del programador. Me explico, aunque es irrazonable crear un array de 1GB para estudiarlo u operar con él, el programador debería definir un tamaño máximo de memoria ocupada por array para que no pasen esas cosas, es decir, dividir en varios segmentos el sistema total.
|
|
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Por más que dividas en 1 o en 100 segmentos, seguirán siendo 2GB ocupadas, la mitad libres. Un crecimiento exponencial es peligroso.
|
|
|
En línea
|
|
|
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
No tiene razón en ese aspecto. Te explico:
Si yo limito cada array de datos a, digamos, 16Mb de datos, me aseguro que almenos mi pérdida de datos no será mayor de 8Mb. Esto es, en el momento que yo almacene 16Mb + 1byte, se pasará a otro array dinámico, es decir, en el peor caso la pérdida será de 16Mb / 2 + 1byte: 8Mb - 1byte de pérdida.
|
|
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
|
Re:
« Respuesta #16 en: 19 Noviembre 2014, 11:47 am » |
|
Entonces ya no estás usando tu método. Entonces estás incrementando 16Mb/realloc. Eso ya no es el tema.
|
|
|
En línea
|
|
|
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
No incremento 16Mb por realloc. Una vez ocupado los 16Mb, hago una nueva variable qie seguiria aumentando hasta los 16Mb.
|
|
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Entonces ese sistema es terriblemente más ineficiente. Si quiero coger 500MB, haz cálculos del número de reallocs.
|
|
|
En línea
|
|
|
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
¿Ineficiente porqué?, si el tamaño medio de datos a cojer es de 50Mb puedo almacenar los datos en esos 50Mb de datos, el programador decide si almacenarlo en 1 Array, o en 500 Arrays.
|
|
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Optimizacion de codigo PHP.
PHP
|
Hadess_inf
|
7
|
3,655
|
31 Octubre 2009, 01:12 am
por HardieVon
|
|
|
su opinion acerca de clang
Programación C/C++
|
yoxter
|
0
|
1,592
|
27 Agosto 2012, 03:40 am
por yoxter
|
|
|
Optimizacion de codigo en C.
Programación C/C++
|
oblivionxor
|
2
|
3,049
|
10 Febrero 2013, 05:01 am
por oblivionxor
|
|
|
Opinion acerca de tarjeta wifi
Materiales y equipos
|
magp_90
|
0
|
2,598
|
20 Mayo 2013, 19:07 pm
por magp_90
|
|
|
consejos con optimizacion de codigo snake
Programación C/C++
|
rulovive
|
5
|
3,006
|
28 Marzo 2014, 19:25 pm
por vangodp
|
|