問題タブ [garbage-collection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
16 に答える
153076 参照

java - System.gc() はいつ何かをしますか?

Javaではガベージコレクションが自動化されていることを知っています。System.gc()しかし、コードを呼び出すと、その時点で JVM がガベージ コレクションの実行を決定する場合としない場合があることを理解しました。これはどのように正確に機能しますか?JVM が GC を実行する (または実行しない) ことを正確に決定する基準/パラメーターはSystem.gc()何ですか?

これをコードに入れることをお勧めする例はありますか?

0 投票する
9 に答える
24797 参照

c++ - C++ のガベージ コレクション ライブラリ

C++ で使用できる無料および商用のガベージ コレクション ライブラリと、それぞれの長所と短所を教えてください。

私は、マーケティングや宣伝文句ではなく、現場での実際の使用から苦労して得た教訓に興味があります.

自動ガベージ コレクションに関連する通常のトレードオフについて詳しく説明する必要はありませんが、使用されるアルゴリズム (参照カウント、マーク アンド スイープ、インクリメンタルなど) について言及し、その結果を簡単に要約してください。

0 投票する
6 に答える
5187 参照

.net - C#のスレッドが収集されない理由は何ですか?

Thread.NETでは、このコードの後に​​、オブジェクトがガベージコレクションされるのを防ぐメカニズムは何ですか?

はい、何かがスレッドへの参照を持っていると仮定するのは安全です、私はちょうど何を正確にさまよっていました。なんらかの理由でReflectorが表示されないSystem.Threadingので、自分で掘り下げることはできません(MSが.NET Frameworkのソースコードをリリースしたことは知っていますが、手元にありません)。

0 投票する
13 に答える
26682 参照

c# - リアルタイム .NET アプリケーションでガベージ コレクションを回避するにはどうすればよいですか?

ネットワークからメッセージを受信し、メッセージの種類に応じて異なるオブジェクトに変換し、最後にアプリケーション ビジネス ロジックを適用する金融 C# アプリケーションを作成しています。

ポイントは、ビジネス ロジックが適用された後は、このインスタンスが再び必要になることはないと確信しているということです。ガベージコレクターがそれらを解放するのを待つのではなく、明示的に「削除」したいと思います。

オブジェクトのプールを使用して常に同じインスタンスのセットを再利用する必要がありますか、それともより良い戦略がありますか?

目標は、タイム クリティカルなプロセス中にガベージ コレクションが CPU を使用するのを回避することです。

0 投票する
6 に答える
3076 参照

java - Java VM はメモリ内のオブジェクトを移動しますか? もしそうなら、どのように移動しますか?

Java 仮想マシンはメモリ内のオブジェクトを移動しますか? もしそうなら、移動したオブジェクトへの参照の更新をどのように処理しますか?

オブジェクトを分散方式 (つまり、複数のサーバーにまたがる) で保存するというアイデアを検討しているので質問しますが、効率上の理由からサーバー間でオブジェクトを移動する機能が必要です。オブジェクトは、リモートサーバー上のオブジェクトであっても、相互へのポインターを含むことができる必要があります。移動したオブジェクトへの参照を更新する最善の方法を考えようとしています。

これまでのところ、私の2つのアイデアは次のとおりです。

  1. オブジェクトが移動した場合に更新する、オブジェクトの存続期間中移動しない場所での参照間接化を維持します。しかし、これらの間接化はどのように管理されているのでしょうか?
  2. 各オブジェクトの逆参照のリストを保持して、オブジェクトが移動された場合に何を更新する必要があるかを把握します。もちろん、これによりパフォーマンスのオーバーヘッドが生じます。

これらのアプローチに関するフィードバックと、代替アプローチの提案に興味があります。

0 投票する
13 に答える
3534 参照

garbage-collection - gcなしでクロージャーを実装するには?

言語を設計しています。まず、生成するコードを決定します。この言語には、レキシカル クロージャと、javascript に似たプロトタイプ ベースの継承があります。しかし、私は gc のファンではないので、できる限り避けようとしています。質問: スタック フレームをヒープに割り当ててガベージ コレクターに任せずにクロージャーを実装するエレガントな方法はありますか?

私の最初の考え:

  1. 参照カウントを使用し、サイクルをガベージ コレクションします (これはあまり好きではありません)。
  2. スパゲッティ スタックを使用します (非常に非効率に見えます)。
  3. クロージャの形成を一部のコンテキストに制限して、リターン アドレス スタックとローカル スタックを回避できるようにします。

高級言語を使用したり、呼び出し規約に従ったりしないので、好きなだけスタックを粉砕できます。

(編集:参照カウントがガベージコレクションの一種であることは知っていますが、より一般的な意味でgcを使用しています)

0 投票する
4 に答える
9467 参照

.net - .NET ガベージ コレクションを外部からトリガーする

別のプロセスまたは WinDBG 内部から .NET プロセスでガベージ コレクションをトリガーする方法はありますか?

ネイティブ/マネージド境界を越えて移動するときにコレクションを強制するマネージド デバッグ アシスタントがあり、AQTimeにはこれを行うことを示唆するボタンがあるようですが、その方法に関するドキュメントが見つかりません。

0 投票する
8 に答える
8709 参照

java - パフォーマンスが優れているループはどれですか?なんで?

また

ループの外で「s」を使用する必要はもうありません。新しい文字列は毎回初期化されないため、最初のオプションの方がおそらく優れています。ただし、2つ目は、変数のスコープがループ自体に制限される結果になります。

編集:ミルハウズの答えに応えて。ループ内の定数に文字列を割り当てるのは無意味ではないでしょうか?いいえ、ここで「いくつかの割り当て」とは、繰り返されるリストから取得された値の変化を意味します。

また、問題は私がメモリ管理について心配しているからではありません。どちらが良いか知りたいだけです。

0 投票する
3 に答える
1608 参照

java - VMWare サーバーでの Java ガベージ コレクション

VmWare インスタンスでアプリを実行しているときに、Java のデフォルトのガベージ コレクターで問題が発生した人はいますか?

フル ガベージ コレクションが期待したほど頻繁に実行されないという問題が発生しており、VmWare 変数がそれと関係があるかどうか知りたいです。

0 投票する
14 に答える
2146 参照

c# - C# で手動でクリーンアップする必要があるリソースは?

C#で手動でクリーンアップする必要があるリソースは何ですか?そうしないとどうなりますか?

たとえば、次のコードがあるとします。

Dispose メソッドを使用してブラシをクリーンアップしない場合、ガベージ コレクターがプログラムの終了時に使用されたメモリを解放すると仮定していますか? これは正しいです?

手動でクリーンアップするには、他にどのようなリソースが必要ですか?