Optimice la memoria trabajando con muchos datosHola !
Estoy iterando muchos análisis en un bucle, como millones, y necesito almacenar los resultados. Esos resultados son valores de texto y valores numéricos. Hasta ahora almacené los resultados en una tabla de datos, pero a medida que aumenta el tamaño de la tabla, también lo hace la memoria y la velocidad de los análisis tiende a disminuir.
Estoy buscando una manera de ahorrar tiempo y memoria.
La mesa ya está en privado (como se sugiere en otro tema del foro); lo hace mejor pero no es suficiente.
Traté de guardar mi variable de texto en una lista y mis variables numéricas en un vector (es bastante eficiente para R). Tal vez lo hice mal, pero aquí parece aumentar el tiempo del bucle.
¿Alguien tiene una buena idea?
Estoy usando Jmp 14 pero puedo tener acceso a JMP 16.
Automatización y secuencias de comandosRe: Optimizar memoria trabajando con muchos datos¿Qué plataformas específicas estás usando? JMP 16 y 17 realizaron mejoras en la velocidad de muchas plataformas.
Además, puede usar la función HP Time() para probar las iteraciones. Algunas buenas discusiones son aquí y aquí .
Re: Optimizar memoria trabajando con muchos datosAñadiendo a @Jed_Campbell En respuesta, también puede usar la función de creación de perfiles en el JMP depurador para determinar dónde están los cuellos de botella.
Re: Optimizar memoria trabajando con muchos datosSi se está quedando sin memoria, tenga cuidado con las tablas de datos privados que olvidó cerrar. (intenta hacerlos invisibles en lugar de privados para asegurarte de que los hayas cerrado. Invisible todavía aparece en la ventana de inicio).
Si JMP funciona cada vez más lento
- Si tiene una computadora de escritorio de la vieja escuela con una luz de disco, vigílela para ver si permanece encendida mucho. Podrías estar creando matrices que son realmente grandes. J(10000) hace una matriz 2D (no 1D).
- si está construyendo una cadena o matriz concatenando hasta el final, se vuelve muy lento a medida que la cadena o matriz se hace más grande. Asigne previamente la matriz al tamaño correcto, o use una lista de partes de cadenas seguidas de concatitems() cuando haya terminado.
Utilice el generador de perfiles del depurador JSL como @Mark_Bailey sugiere.
Wrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, Gollave, reloj, ir
Si tiene suerte, habrá un punto de acceso obvio que podría coincidir con algo anterior.
Re: Optimizar memoria trabajando con muchos datosUso la plataforma Kmean (y abro y cierro informes a lo largo del proceso).
Estoy acostumbrado a usar tick second (), no sabía sobre Hp time(). ¿Parece ser parecido?
Verificaré las discusiones que viste, gracias.
Re: Optimizar memoria trabajando con muchos datosGracias Craige, ese es un muy buen consejo, ¡no tenía ni idea de que la asignación previa del tamaño ayudaría!
Estoy bastante seguro de que no se trata de tablas que olvidé cerrar porque tenía un paso en mi secuencia de comandos donde mis tablas eran visibles.