目に見えないテーブルがガレージ収集されている問題<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私は、実行を早くするために、見えないテーブルで計算を実行したいのです。
しかし、私の目に見えないテーブルは、有用なことをする前に削除される ログ出力に次のメッセージが表示されます。
変数またはウィンドウが参照していないため、テーブル 'Invisible table'は自動的に閉じられました。
JMPスクリプティングガイドによると、これは見えないテーブルがSubset(invisible)コマンドを使用して作成された場合に予想される動作です。しかし、私は新しいテーブルを作成しています
dt = newTable( "見えないテーブル"、見えない);
JMPスクリプティングガイドでは、これを行うときにテーブルを閉じることを忘れないでください。そうしないと、JMPを終了するまでメモリ内に残ります。しかし、私の場合は、テーブルへの参照を割り当てたとしても、テーブルに対する最初の操作の後、しばらくして自動的に削除されます。(見えないオプションを指定せずにテーブルを作成した場合、すべて正常に機能しています)
JMP 8を使う
目に見えないテーブルがガレージ収集されている問題もう少し調査したところ、見えない表にリンクされている副表を閉じようとしたときに問題が発生したようです。
だから私はこのようなことをしています:
dt = newTable( "見えないテーブル"、見えない);
dt << Select Where(/ *いくつかの選択基準* /);
subdt = dt << Subset(出力テーブル名( "サブセットテーブル")、Linked);
// subdtに対する操作
閉じる(subdt、nosave)
このコードは、Selectコマンドの選択基準を変えるループに囲まれています。
問題はclose()コマンドです。副表を閉じないと、目に見えない表への参照は消えません。(また、私がリンクとしてサブテーブルを指定しなければ、それはちょうどうまくいくでしょう)
これを知っている私は私の問題を解決するための他の方法を見つけることができますがあなたがこの行動についての説明があれば私はそれを聞くことに興味があるでしょう
よろしく、
手助け
目に見えないテーブルがガレージ収集されている問題New Table()ステートメントにもう少しコンテキストを追加できますか?
たとえば、JSL変数を再利用するとします。 dt その後、見えないテーブルへの参照はなくなり、JMPはそれを閉じます。
dt = New Table( "見えないテーブル"、見えない);
dt = .;
だから、私たちはあなたのJSLをもう少し見て、何が起こっているのかを突き止めるのを助ける必要があります。
- ジェフ