私はColdFusionでデータベースロードスクリプトを作成しましたが、スクリプトのメモリがゆっくりと不足するという問題があります。各テーブルの読み込みを<cfthread>を使用して独自のスレッドに分割し、メモリが50%を下回ったときにガベージコレクターを呼び出しています(ガベージコレクターがメモリを占有しないように、gc()呼び出しの間隔を30秒にしてください) 。
スクリプトに必要なすべてのクエリを保持するCFCを作成しました。スクリプトは適切なCFC関数を呼び出し、クエリを返します。クエリの一部は2MBを超えています。アクティブなスレッドのメモリページの詳細ビューでサーバーモニターを見ると、クエリ変数をvarscopeして、最後に変数がスコープ外になったにもかかわらず、CFCがクエリのコピーをメモリに保持しているように見えます関数の。さらに、スレッドのメモリにクエリのコピーがあります。だから私はメモリ内のクエリの2つのコピーのように見えるものが残っています。これは本当に何が起こっているのですか?もしそうなら、どうすればメモリからクエリのコピーを1つ削除できますか?