Utilisation de la mémoire lors de la création de plusieurs tablesLors de la création de nombreuses tables puis de leur fermeture, JMP semble conserver les tables ou certains restes en mémoire. La mémoire est parfois libérée au bout d'un certain temps. J'ai rencontré ce problème lors de la simulation d'une situation de mesure avec des sources de bruit. JMP ne plante pas, mais après que la RAM soit épuisée, Windows a commencé à passer au disque dur.
Vous trouverez ci-dessous l'exemple le plus simple dans lequel j'ai pu répéter le problème.
Question : est-ce un comportement attendu et/ou ai-je fait quelque chose de drôle ?
Note à tous ceux qui rencontrent la même chose : décommentez Wait(0); supprime le problème, mais semble avoir une légère pénalité de performances (~ 10 %) au moins dans le cas où il s'agissait d'un problème.
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 64 bits, Win 10
Ingénierie Qualité et ProcédésRe : Utilisation de la mémoire lors de la création de plusieurs tablesEn ce qui concerne la dernière question, vous pouvez utiliser l'indice de table de données :
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 : Utilisation de la mémoire lors de la création de plusieurs tablesPrincipalement parce que j'ai utilisé des parties de scripts que j'avais déjà écrits auparavant et que je ne voulais pas les modifier. Dans de nombreux cas, je préfère les scripts lents plutôt que de travailler sur le script pour le rendre plus rapide.
Dans certains cas, les tableaux de données tirent leurs données de matrices :
dt = As Table(matrixWithData, private);
Existe-t-il un moyen de mettre facilement les données dans une table de données existante ? Cela rendrait les changements relativement simples.
Re : Utilisation de la mémoire lors de la création de plusieurs tablesPourquoi créer une nouvelle table à chaque itération ? Vous pouvez créer une table de données avant l'itération et mettre à jour le contenu à chaque itération.
Re : Utilisation de la mémoire lors de la création de plusieurs tables@Niko_Porjo ,
Essayez d'inclure un indicateur "invisible" ou "privé" lorsque vous ouvrez autant de tables de données. Rendre les tableaux de données "invisibles" vous aidera à voir certaines améliorations et les rendre "privés" vous aidera à voir des améliorations significatives.