問題タブ [memory-leaks]
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 - 「メモリリーク」の構造
.NETの観点では:
- メモリリークとは何ですか?
- アプリケーションがリークしているかどうかをどのように判断できますか?効果は何ですか?
- どうすればメモリリークを防ぐことができますか?
- アプリケーションにメモリリークがある場合、プロセスが終了するか強制終了されると、メモリリークはなくなりますか?または、アプリケーションのメモリリークは、プロセスの完了後でもシステム上の他のプロセスに影響を与えますか?
- また、COM相互運用機能やP/Invokeを介してアクセスされるアンマネージコードについてはどうでしょうか。
memory-leaks - Rational Purify がメモリー・リークへのジャンプに失敗する
そのため、私の会社では、(Microsoft Visual Developer Studio のプラグインとして) Rational Purify という非常にバグのあるプログラムを使用して、メモリ リークを管理しています。このプログラムは、メモリ リークが発生した後にクリックして、リークが発生した行にジャンプできるように設計されています。
残念ながら、Purify は誤動作しており、Purify はリークが発生した場所にジャンプすることはできません。リークが発生したクラスとメソッドしか言及されていません。森に行き、クマがいると教えてください。
Purify の経験がある人は、この問題を解決する方法や、適切なマニュアルを参照する方法を知っていますか?
memory-leaks - イベント ハンドラーとしてラムダを使用すると、メモリ リークが発生する可能性がありますか?
次のメソッドがあるとします。
このメソッドを持つクラスがインスタンス化され、PotentialMemoryLeaker
メソッドが複数回呼び出された場合、メモリ リークが発生しますか?
の呼び出しが完了した後、そのラムダ イベント ハンドラーをアンフックする方法はありますMethodThatFiresAnEvent
か?
memory-leaks - IE 6 でメモリ リークを伴う巨大な Web アプリケーション
IE 6 でメモリ リークの問題が発生している巨大な Web アプリがあります。
問題を示す 5 行のコード サンプルでメモリ リークを修正するのは簡単です。
しかし、非常に巨大なアプリケーションがある場合、どこから始めるべきでしょうか?
.net - .NET でのメモリ リーク
.NET でメモリ リークが発生する可能性のあるすべての方法は何ですか?
私は2つ知っています:
- Event Handlers/Delegatesの登録が適切に解除されていません。
- Windows フォームで動的な子コントロールを破棄しない:
例:
更新:アイデアは、あまり明白ではない一般的な落とし穴(上記など)をリストすることです。通常、ガベージ コレクターのおかげで、メモリ リークは大きな問題ではないと考えられています。以前の C++ とは異なります。
素晴らしいディスカッションですが、明確にさせてください... 定義により、.NET にオブジェクトへの参照が残っていない場合、それはいつかガベージ コレクションになります。したがって、これはメモリ リークを誘発する方法ではありません。
マネージド環境では、認識していないオブジェクトへの意図しない参照があった場合、メモリ リークと見なします (したがって、私の質問の 2 つの例)。
では、このようなメモリ リークが発生する可能性のあるさまざまな方法にはどのようなものがあるでしょうか。
c++ - C / C ++プログラムとそのプラグインDLLに最適な空きメモリリーク検出器は何ですか?
.exeと.exeがロードする多くのプラグイン.dllモジュールがあります。(両方のソースがあります。)クロスプラットフォーム(ソースあり)ソリューションが理想的ですが、プラットフォームをWinXPとVisual Studio(私の場合は7.1 / 2003)に絞り込むことができます。
組み込みのVSリーク検出器は、new / mallocが呼び出された行のみを提供しますが、割り当てのラッパーがあるため、完全なシンボリックスタックトレースが最適です。
検出器は、.exeとそれに付随するプラグイン.dllモジュールの両方のリークを検出することもできます。
vb6 - When must I set a variable to "Nothing" in VB6?
In one of my VB6 forms, I create several other Form objects and store them in member variables.
#xA;I notice that I'm leaking memory whenever this (parent) form is created and destroyed. Is it necessary for me to assign these member variables to Nothing
in Form_Unload()
?
In general, when is that required?
SOLVED: This particular memory leak was fixed when I did an Unload
on the forms in question, not when I set the form to Nothing
. I managed to remove a few other memory leaks by explicitly setting some instances of Class Modules to Nothing
, as well.
java - Java メモリ リークを見つける方法
Java でのメモリ リークをどのように見つけますか (JHat などを使用)。基本的な外観を得るために、JHat にヒープ ダンプをロードしようとしました。ただし、ルート参照 ( ref ) またはそれが呼び出されるものを見つける方法がわかりません。基本的に、数百メガバイトのハッシュ テーブル エントリ ([java.util.HashMap$Entry など) があることがわかりますが、マップはいたるところで使用されています...大きなマップを検索する方法はありますか? 、またはおそらく大きなオブジェクトツリーの一般的なルートを見つけますか?
[編集] わかりました、これまでの回答を読みましたが、私は安っぽい野郎だとだけ言っておきましょう (つまり、JProfiler にお金を払うよりも、JHat の使い方を学ぶことに関心があるということです)。また、JHat は JDK の一部であるため、いつでも使用できます。もちろん、JHat にはブルート フォース以外の方法はありませんが、そうであるとは信じられません。
また、実際に変更 (すべてのマップ サイズのログを追加) して、リークに気付くのに十分な時間実行できるとは思いません。
.net - VB6で変数を再利用するのは良い考えですか?
基本的に、VB.NET 2005でsqlcommandを使用し、次にNEWを使用してそれを再利用することが間違っているかどうかを知りたいです。メモリリークが発生しますか?
例えば:
編集:それらを使用しないことについてのコメントを避けるために、試してみてください
asp.net - Microsoft ASP.NET AjaxはDOMオブジェクトのリークを引き起こしますか?
「Drip」を使用して、UpdatePanelを含むページがクライアント側のメモリを大量に使用する傾向がある理由を特定しようとしています。通常のポストバックのあるページでは、Dripによって検出されたリークは0です。ただし、更新パネルをミックスに追加すると、更新パネル内にあるすべてのDOMオブジェクトがリークしているように見えます(Dripによると)。
Dripがこれらの種類のことを報告するのに十分信頼できるかどうかはわかりません-報告されたリークは、Dripがページをわずかに変更していることを示しているようです。
誰かがこれを経験したことがありますか?パニックになってMicrosoftAjaxの使用をやめるべきですか?私はマイクロソフトを疑う以上のことはしていませんが、それがこれほど悪いことかもしれないと私には怪しいようです。
また、Dripよりも優れたツールを知っている場合は、それも役立ちます。