多数のテーブルを作成する場合のメモリ使用量多数のテーブルを作成してから閉じると、JMP はテーブルまたは一部の残りをメモリ内に保持しているようです。しばらくすると記憶が解放されることもあります。ノイズ源のある測定状況をシミュレーションしているときに、この問題に遭遇しました。 JMP はクラッシュしませんでしたが、RAM が使い果たされた後、Windows が HDD にスワップし始めました。
以下は、問題を再現できた最も単純な例です。
質問: これは予期された動作ですか、それとも私が何か面白いことをしたのでしょうか?
同じ問題に遭遇した人への注意: Wait(0); のコメントを解除してください。問題は解決されますが、少なくともこれが問題だった場合には、パフォーマンスにわずか (~10 %) のペナルティが発生するようです。
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 ビット、Win 10
品質およびプロセスエンジニアリングRe: 多くのテーブルを作成する場合のメモリ使用量最後の質問に関しては、データ テーブルの添え字を使用できます。
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: 多くのテーブルを作成する場合のメモリ使用量主な理由は、以前に書いたスクリプトの一部を使用し、それらを変更したくなかったためです。 多くの場合、スクリプトを高速化するために作業するよりも、遅いスクリプトを好みます。
場合によっては、データ テーブルは行列からデータを取得します。
dt = As Table(matrixWithData, private);
データを既存のデータ テーブルに簡単に配置する方法はありますか? これにより、変更が比較的簡単になります。
Re: 多くのテーブルを作成する場合のメモリ使用量反復ごとに新しいテーブルを作成するのはなぜですか? 反復する前にデータ テーブルを作成し、各反復で内容を更新できます。
Re: 多くのテーブルを作成する場合のメモリ使用量@ニコポルジョ、
非常に多くのデータ テーブルを開くときは、「非表示」フラグまたは「非公開」フラグを含めるようにしてください。 データ テーブルを「非表示」にすると改善が見られ、「非公開」にすると大幅な改善が見られます。