Uso de memoria al crear muchas tablas.Al crear muchas tablas y luego cerrarlas, JMP parece mantener las tablas o algunos restos en la memoria. A veces el recuerdo se libera después de un tiempo. Me encontré con esto al simular una situación de medición con fuentes de ruido. JMP no falló, pero después de que se agotó la RAM, Windows comenzó a cambiar a HDD.
A continuación se muestra el ejemplo más simple en el que pude repetir el problema.
Pregunta: ¿Es este el comportamiento esperado y/o hice algo gracioso?
Nota para cualquiera que encuentre lo mismo: descomentar Wait(0); elimina el problema, pero parece tener una pequeña penalización de rendimiento (~10 %) al menos en el caso en que esto fuera un problema.
For (i = 1, i <= 100000, i++,
dt = New Table("Name of the table",
New Column("Name of the column", Set Values(1::20000)),
);
// Do stuff
Close(dt, "No Save");
//Wait(0);
);JMP 14.0.0 de 64 bits, Win 10
Ingeniería de Calidad y ProcesosRe: Uso de memoria al crear muchas tablasCon respecto a la última pregunta, podría usar subíndices de tablas de datos:
NamesDefaultToHere(1);
// Make a starting table to update later
mat = J(10, 5, RandomNormal());
dt = AsTable(mat);
dt << setName("My Table");
// Update the last four columns of dt (using data table subscripting) with new values
Wait(3);
mat = J(10, 4, RandomNormal());
dt[1::10, 2::5] = mat;Re: Uso de memoria al crear muchas tablasPrincipalmente porque usé partes de guiones que ya había escrito antes y no quería cambiarlas. En muchos casos, prefiero los scripts lentos a trabajar en el script para hacerlo más rápido.
En algunos casos, las tablas de datos obtienen sus datos de matrices:
dt = As Table(matrixWithData, private);
¿Hay alguna manera de poner fácilmente los datos en una tabla de datos existente? Eso haría que los cambios fueran relativamente simples.
Re: Uso de memoria al crear muchas tablas¿Por qué crear una nueva tabla en cada iteración? Puede crear una tabla de datos antes de iterar y actualizar los contenidos en cada iteración.
Re: Uso de memoria al crear muchas tablas@Niko_Porjo ,
Intente incluir un indicador "invisible" o "privado" cuando abra tantas tablas de datos. Hacer que las tablas de datos sean "invisibles" lo ayudará a ver algunas mejoras y hacerlas "privadas" lo ayudará a ver mejoras significativas.