Buenas tardes, muchísimas gracias por la ayuda MarronsDispatcher.
El código se encarga de recoger los datos que le llegan desde arduino y almacenarlos en su apartado correspondiente. Las únicas variables que interesan mantener del código son estas:
int datosa[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosb[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosc[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosd[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosaa[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosbb[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int datoscc[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosdd[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
El resto de objetos y cosas que saturan la memoria se utilizan para reproducir en forma de texto o sonido los datos.
Otro apartado se encarga de reconocer la voz para volver a reproducir de forma sonora los datos.
Lo que más memoria ram consume es la carga y reproducción de sonidos:
Código:
sonido = minim.loadFile("xxo pxxxxx xe xx ases nxxxo" + ".mp3");
sonido.play();
El consumo es de unos 20-30 megas por oleada de datos.
No se como puedo hacer para que el recolector de basura lo elimine una vez reproducido. Es como si la referencia permaneciese aunque a continuación cargue otro sonido:
Código:
sonido = minim.loadFile("Nasiopalaalegria" + ".mp3");
sonido.play();
Lo que realmente quería hacer es programar reseteos automáticos del programa cada cierto tiempo y recuperar los valores de una base de datos.
Código:
int datosa[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosb[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosc[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosd[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosaa[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosbb[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int datoscc[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int datosdd[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
Aunque parezca mentira el programa hace lo que tiene que hacer sin aparentemente más fallos que el apetito voraz de memoria ram.
_________
He estado testeando las diferentes aplicaciones que ido haciendo y el reconocedor de voz genera un consumo de ram de 0,5mb/s
Aparentemente la recepción de datos aunque experimenta un incremento de ram inicial de unos 2-5mb finalmente se estabiliza y el programa se queda consumiendo simplemente 35 mb.
Intente arreglarlo poniendo
pero no sirvió de nada.