Utilizzo della memoria durante la creazione di molte tabelleQuando si creano molte tabelle e poi le si chiudono, JMP sembra mantenere in memoria le tabelle o alcuni resti. La memoria a volte viene rilasciata dopo un po'. Mi sono imbattuto in questo durante la simulazione di una situazione di misurazione con fonti di rumore. JMP non si blocca ma dopo che la RAM si è esaurita, Windows ha iniziato a passare all'HDD.
Di seguito è riportato l'esempio più semplice in cui sono stato in grado di ripetere il problema.
Domanda: è un comportamento previsto e/o ho fatto qualcosa di divertente?
Nota per chiunque riscontri la stessa cosa: rimuovere il commento da Wait(0); rimuove il problema, ma sembra avere una piccola penalità di prestazioni (~10%) almeno nel caso in cui questo fosse 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 a 64 bit, Windows 10
Ingegneria della qualità e dei processiRe: Utilizzo della memoria durante la creazione di molte tabellePer quanto riguarda l'ultima domanda, è possibile utilizzare l'indicizzazione della tabella dei dati:
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: Utilizzo della memoria durante la creazione di molte tabellePrincipalmente perché ho usato parti di script che avevo già scritto in precedenza e non volevo cambiarli. In molti casi preferisco script lenti piuttosto che lavorare sullo script per renderlo più veloce.
In alcuni casi le tabelle di dati ottengono i loro dati dalle matrici:
dt = As Table(matrixWithData, private);
C'è un modo per inserire facilmente i dati in una tabella di dati esistente? Ciò renderebbe le modifiche relativamente semplici.
Re: Utilizzo della memoria durante la creazione di molte tabellePerché creare una nuova tabella in ogni iterazione? È possibile creare una tabella di dati prima dell'iterazione e aggiornare il contenuto in ogni iterazione.
Re: Utilizzo della memoria durante la creazione di molte tabelle@Niko_Porjo ,
Prova a includere un flag "invisibile" o "privato" quando apri così tante tabelle di dati. Rendere le tabelle dati "invisibili" ti aiuterà a vedere alcuni miglioramenti e renderle "private" ti aiuterà a vedere miglioramenti significativi.