問題タブ [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.
.net - System.WeakReferenceの実用的な使用
System.WeakReferenceが何をするかは理解していますが、理解できないように見えるのは、System.WeakReferenceが何に役立つかを示す実際的な例です。クラス自体は、まあ、ハックのように思えます。私が見た例でWeakReferenceが使用されている場合、問題を解決するためのより良い方法が他にもあるように思われます。本当にWeakReferenceを使用しなければならない場所の標準的な例は何ですか?この種の振る舞いやこのクラスの使用から さらに離れようとしているのではないでしょうか。
c# - 必要な関数呼び出しの強制
次のように使用される C# の「ステータス」クラスがあります。
あなたはアイデアを得る。MyFunction のすべての呼び出し元は、返された Status を確認する必要があります。
ただし、怠惰な呼び出し元はステータスを無視できます。
また
これを不可能にすることは可能ですか?例外のスローなど
一般に、特定の関数を呼び出さなければならない C# クラスを作成することは可能ですか?
C++ バージョンの Status クラスでは、デストラクタでプライベート bool bIsChecked に対するテストを記述し、誰かがこのインスタンスをチェックしない場合にベルを鳴らすことができます。
C# の同等のオプションは何ですか? 「C#クラスにデストラクタは必要ない」とどこかで読みました
IDisposable インターフェイスの Dispose メソッドはオプションですか?
この場合、解放するアンマネージ リソースはありません。さらに、GC がいつオブジェクトを破棄するかは決定されません。最終的に破棄されたときに、その特定の Status インスタンスをいつどこで無視したかを知ることは可能ですか? 「using」キーワードは役に立ちますが、怠惰な呼び出し元には必要ありません。
java - JavaとPythonのガベージコレクションメソッドが異なるのはなぜですか?
Pythonは、参照カウントメソッドを使用してオブジェクトの有効期間を処理します。したがって、使用されなくなったオブジェクトはすぐに破棄されます。
ただし、Javaでは、GC(ガベージコレクター)は、特定の時間に使用されなくなったオブジェクトを破棄します。
Javaがこの戦略を選択する理由と、これによるメリットは何ですか?
これはPythonのアプローチよりも優れていますか?
caching - 管理言語のキャッシュスキーム
これは主にデスクトップアプリケーション開発者を対象としています。
GCとうまく連携するキャッシングブロックを設計するにはどうすればよいですか?
キャッシュスイープを実行したばかりで、GCを実行するときが来たことをGCに通知するにはどうすればよいですか。
キャッシュスイープを実行する時期を正確に測定するにはどうすればよいですか?
いくつかのアイデアを借りることができる構築済みのキャッシュスキームはありますか?
java - Java と手動でファイナライズを実行する
finalize()
プログラム コードからオブジェクトを呼び出した場合、ガベージ コレクターがこのオブジェクトを処理するときに、 JVMはメソッドを再度実行しますか?
これはおおよその例です:
JVMのガベージ コレクタがオブジェクトに対してメソッドを実行しないようにfinalize()
するための明示的な呼び出しはありますか?finalize()
m
java - finalize() を明示的に呼び出したり、ガベージ コレクターを開始したりしないのはなぜですか?
この質問を読んだ後、Java を教えられたときのことを思い出し、finalize() を呼び出したり、ガベージ コレクターを実行したりしないように言われました。誰かがこれの理由を数文に要約できますか? この件に関する Sun のテクニカル レポートを読むことはできると思いますが、簡潔で簡潔な回答があれば、私の好奇心を満足させることができると思います。
.net - VB6で変数を再利用するのは良い考えですか?
基本的に、VB.NET 2005でsqlcommandを使用し、次にNEWを使用してそれを再利用することが間違っているかどうかを知りたいです。メモリリークが発生しますか?
例えば:
編集:それらを使用しないことについてのコメントを避けるために、試してみてください
.net - ガベージ コレクション: Dispose メソッドで大きなオブジェクトを null に設定する必要がありますか?
null
メソッドを実装するときに大きなオブジェクトを設定する必要がありDispose()
ますか?
vb.net - ハンドルと AddHandler
イベント ハンドラーを動的にアタッチ/デタッチする利点はありますか?
ハンドラーを手動でデタッチすると、破棄されたオブジェクトへの参照が残っていないことを確認できますか?
.net - SqlCommand.Dispose は接続を閉じますか?
このアプローチを効率的に使用できますか?
私の懸念は: SqlCommand の Dispose メソッド (using ブロックを終了するときに呼び出される) は、基になる SqlConnection オブジェクトを閉じるかどうかです。