• Viernes 8 de Noviembre de 2024, 19:09

Autor Tema:  problema de eficiencia  (Leído 996 veces)

kino_486

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
problema de eficiencia
« en: Sábado 10 de Enero de 2009, 15:39 »
0
muy wenas...
Os cuento.. resulta que estoy desarrollando un editor de texto por comandos para una practica de la facultad en c++, este editor mantiene un diccionario con un arbol trie, perfectamente implementado y probado...
el problema viene cuando me mandan desarrollar una funcion sobre este arbol que me viene dando quebraderos de cabeza desde hace semanas, este procedimiento invoca a otro procedimiento, el cual tiene una llamada recursiva... e comprobado que la llamada me da el resultado que esperaba, pero he aqui mi sorpresa cuando veo que cada invocacion a la llamada m consume cientos de megas de memoria, cosa que no es aceptable para mi trabajo, deciros que el problema esta en una lista que uso de variable global, en la cual en cada llamada recursiva se añade un elemento.....

e probado a utilizar un array para almacenar estos elementos, e probado llamar a la funcion sin la lista, la memoria se reduce considerablemente (aunq en algun sitio tengo q alamacenar estos elementos)..... ahora os pido ayuda, como podria almacenar los elementos de una llamada recursiva sin elevar considerablemente el consumo de memoria?

muxas gracias..un saludete

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: problema de eficiencia
« Respuesta #1 en: Lunes 12 de Enero de 2009, 09:53 »
0
Cita de: "kino_486"
como podria almacenar los elementos de una llamada recursiva sin elevar considerablemente el consumo de memoria?
Bueno, si en algún sitio tienes que almacenar los datos, y realmente los necesitas todos, entonces no tienes otra que consumir la memoria que haga falta. ¿Es posible que en realidad la memoria consumida sea debida a las llamadas recursivas y no a los datos? Las llamadas recursivas suelen consumir bastante más memoria (en la pila, puesto que hay que guardar direcciones de retorno y parámetros) que las iteraciones.

Salud

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: problema de eficiencia
« Respuesta #2 en: Lunes 12 de Enero de 2009, 10:41 »
0
la verdad es que tal como dicen, la recursividad es lo que tiene, que consume pila como ella sola.

Publica el codigo, quizas se pueda hacer algun invento para optimizar. :D