問題タブ [weak-references]
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 - 私のアプリで弱参照を排除するためのヘルプが必要
アプリのメモリリークを解決しようとしています。RedGateのANTSMemoryProfiler 5.0をダウンロードして実行しましたが、メモリプロファイラーはリークがWeakReferencesに関係していることを教えてくれます。
私が遭遇している問題は、WeakReferenceについて聞いたことがなく、アプリで明示的に宣言されていないことです。私が行った読みから、破壊しようとしているオブジェクト/リソースがあるが、他のオブジェクトが多すぎるために参照し続けることができない場合に、弱参照が作成されると思います。ファイルがまだ使用されているために削除できないのとほぼ同じ方法だと思います。
だから私の質問は、これらの弱い参照がどこから来ているのかをどのように判断するのですか?ByRefの使用ではないかと疑っていますか?別の同僚がハッシュテーブルを提案しました。
弱参照の検出と除去についての説明と、私の疑いについての説明を取得したいと考えています。
ありがとう。
python - Djangoのシグナル処理がデフォルトでコールバックに弱い参照を使用するのはなぜですか?
Djangoのドキュメントでは、この件について次のように述べています。
また、Djangoはデフォルトでシグナルハンドラーを弱参照として保存するため、ハンドラーがローカル関数の場合、ガベージコレクションされる可能性があることにも注意してください。これを防ぐには、シグナルのconnect()を呼び出すときにweak=Falseを渡します。
これがデフォルトである理由の正当性を見つけることができませんでした。また、明示的に登録したシグナルを暗黙的に非表示にする必要がある理由がわかりません。では、ここでの弱参照のユースケースは何ですか?そして、なぜそれがデフォルトなのですか?
どちらの場合も99%は問題ないのではないかと思いますが、ここでわからないことがあるので、いつか噛み付くような「落とし穴」が潜んでいないか知りたいです。
c# - C#:WeakReferenceが収集される前の通知?
C#/。NETで、弱参照が指すオブジェクトが破棄される前に通知を受け取る方法はありますか?基本的に、オブジェクトの収集を許可したいのですが、デストラクタを追加するためにコードを変更せずに、オブジェクトが破棄される直前に何かを実行します(コードでどのタイプのオブジェクトが訴えられるか正確にはわからないため)。
ありがとう、ロバート
python - Python の weakref コールバックと __del__ の実行順序
Python では、オブジェクトがファイナライズされた後に関数を呼び出す方法はありますか?
私はweakrefのコールバックがそれを行うと思っていましたが、オブジェクトがガベージコレクションされると、オブジェクト__del__
メソッドが呼び出される前にweakrefのコールバックが呼び出されるようです。これは、Python トランクの weakrefs とガベージ コレクションに関する注意事項に反するようです。これが例です。
私が得る出力は
私がやりたいことをするための他の従来の方法はありますか?コールバックでファイナライズを強制することはできますか?
java - Java で弱参照を使用するコスト
Java WeakReferenceオブジェクトの作成とガベージ コレクションに関連するランタイム コストを調べた人はいますか? マルチスレッド アプリケーションのパフォーマンスの問題 (競合など) はありますか?
編集:明らかに、実際の回答は JVM に依存しますが、一般的な観察も歓迎します。
編集 2: 誰かがパフォーマンスのベンチマークを実行したことがある場合、またはベンチマークの結果を指摘できる場合、それは理想的です。(申し訳ありませんが、賞金は期限切れです...)
actionscript-3 - actionscript 3 でのガベージ コレクションと弱い参照を使用したイベントについて混乱している
オブジェクトへの参照があります。このオブジェクトには、弱い参照を持つタイマー イベントがあります。例:
ここで、この参照を削除します (test は参照を含む変数です)。
それでも、timerHandler は起動し続けます。これは不可能なので、コードに何らかの間違いがあったに違いありません。他に可能性はありませんか?
それとも、タイマー機能が常に実行されるのを止めることは実際には想定されていませんか?
python - pythonでweakproxyが常に同等性を維持するとは限らないのはなぜですか?
MySQLDb は弱いプロキシを使用して、カーソルと接続の間の循環依存を防ぎます。
しかし、weakref に関するドキュメントから、同等性をテストできることを期待できます。まだ:
接続が同じかどうかはどうすればわかりますか?
language-agnostic - 弱参照の他の使用法は?
弱参照は潜在的に大きなデータセットをメモ化するのに適した候補であることを知っています。弱参照に関するWikipediaの記事には、「アプリケーションで参照されている現在の変数を追跡する」と「弱参照の別の使用法は書面で」という記述しか記載されていません。キャッシュ」。
弱参照の使用がAGoodIdea TMである他のいくつかの状況(単なる「結果のキャッシュ」よりも具体的)は何ですか?
.net - WeakReference は文字列で動作しますか?
.NET 3.5 では、WeakReference は String で動作しますか、それとも動作させるために小さな「クラス」でラップする必要がありますか?
java - Java WeakHashMap 参照が更新されていない
以下のコードでは、Pen オブジェクトを作成し、その色を白に初期化しています。Pen のコンストラクターで、フィールド「penColor」をコンストラクターに渡された値に設定した後、キーが「this ポインター (私の場合はペン)」である場所に保持しているグローバルな静的な弱いハッシュマップを更新します。 value は、KEY が文字列「penColor」であり、値が penColor メンバー フィールドへの参照である別の weakhashmap です。
次に、私のコードは Pen の setColor 関数を呼び出して Pen の色を更新します。この更新の後、weakhashmap で Pen オブジェクトの color フィールドを調べると、新しい色が反映されると思っていましたが、そうではありません。誰かがその理由を説明できますか?