Open davidperezmartorell opened 6 months ago
Perfecto, muchas gracias David. Podrías preguntar en el slack de ecoinformática para ver si hay alguien que ya ha lidiado con este problema? Hay una sección de dudas en el slack para ello
También estaría bien saber qué proceso es el que más memoria consume. Por ejemplo si la base de datos fuera muy grande podríamos alojarlo en algún otro sitio y leerlo de ahí https://forum.posit.co/t/shiny-app-cant-deploy-because-data-exceeds-2-9-gb-are-there-any-solutions-i-can-take/62877 -> https://shiny.posit.co/r/articles/build/persistent-data-storage/ https://anderfernandez.com/en/blog/put-shiny-app-into-production/ (por lo que he leido tiene una versión de prueba pero luego hay que pagar) https://serve.scilifelab.se/docs/user-accounts/ (tenemos algunos colaboradores suecos por lo que puede ser otra opción) https://www.r-bloggers.com/2021/12/how-many-shiny-apps-can-you-host-for-free/ (más opciones pero creo que ninguno soluciona mucho nuestro problema)
....revisando.....a ver si los suecos nos dan una salida interesante....pero ya optimicé el programa y carga en shiny https://qm0lyl-david-perez0martorell.shinyapps.io/forestmap/
Gracias David, gran trabajo!! Lo he probado y me ha funcionado bien, pero luego cuando se conecten varias personas y demás la cosa puede ser distinta. ¿Sabés qué es lo que más pesa del programa? ¿Quizás es la pestaña de general? En mi opinión es mejor que la información que mostremos esté bien y la app sea relativamente ágil a mostrar más información y que vaya lento. Mejor ir construyendo poco a poco.
Por otra parte, algunos detalles que he visto: al proporcionar el doi del estudio creo que sería mejor proporcionar el doi del artículo a la revista en vez de a researchgate. Por ejemplo, en Williams 2000 va a researchgate en vez de al artículo. En ese mismo artículo en las gráficas de clase y orden, creo que estaría bien rodendear los conteos y años a números enteros. En la pestaña general después del título de cada gráfica, hay un espacio en blanco antes del primer paréntesis.
aqui tenemos el consumo de memoria del programa segun a avanzando
respecto el enlace, agrego ambos enlaces, al DOI y a la URL relacionada
creo que apuntan al mismo sitio
Respecto el gráfico, veo que sale asi, y es incorrecto. seguramente en alguna versión se me perdió los límites de los ejes lo resuelvo empezando ejes siempre desde 0, pero esste en concreto, los datos son 1, por eso divide el eje y
Aqui otro estudio con diferentes valores
he revisado de nuevo el consumo de memoria, ese pico al haver el filtro y veo que el proceso es el siguiente: 1 haces click 2 darga datos de taxon y assembleages 3 mergea datos tomando el valor de id_study como referencia
en el paso 3 tiene 2 datastreams grandes. Lo que hago es primero filtrar de ambos dataframes los que tengan ese id_study y luego mergearlos en lugar de mergear todos los datos.
Aqui la mejora (un trozo de funcion)
filterDataByIdstudy<-function(taxon,assembleages,study){ assembleages <- assembleages[assembleages$id_study %in% study, ] <- AQUI EL FILTRO DONDE TOMO SOLO LOS VALORES INTERESANTES
assembleages$age <- as.numeric(assembleages$age)
taxon <- subset(taxon, id_study %in% study) <- AQUI EL FILTRO DONDE TOMO SOLO LOS VALORES INTERESANTES
merged_data <- merge(taxon, assembleages, by = c("id_study"), all.x = TRUE) <- AQUI EL MERGEO PESADO
aqui puedes ver el código en el programa que lo acabo de subir
Muchas gracias por todas las respuestas y correcciones David. Aquí te contesto:
round()
sobre el eje y y así no te lo dividirá aunque solo tenga 1 datogc()
para liberar memoria.
https://stackoverflow.com/questions/11579765/how-do-i-clean-up-r-memory-without-restarting-my-pc
y rm()
si hiciera falta: https://bookdown.org/content/d1e53ac9-28ce-472f-bc2c-f499f18264a3/releasememory.html
Tenemos que ver que hacer cuando se entregue el tfm y la aplicación sea entregada. Cuando no sea vivible desde mi ordenador por el fin de las relaciones académicas, el único espacio disponible es el servidor web que esta limitado a 1GB de memoria. Tambien es accesible el código en GITHUB pero no como ejecutable, sino que es necesario desscargar el código y subirlo a un servidor. Necesitamos un servidor donde subir este programa y disponibilizarlo a cualquier investigador.
Sin mencionar que este código tambien requiere de un mantenimiento, pero esta suficientemente documentado en todos los archivos para que un nuevo investigador pueda seguir el trabajo.