問題タブ [red-gate-ants]
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.
c# - リスト オブジェクトのガベージ コレクション
List (Of Object) に収集されたオブジェクトをきれいにして破棄する効率的な方法は何ですか?
List.Clear() メソッドを呼び出すと、それによって収集されたすべてのオブジェクトが自動的にクリーンアップされますか?
例として、以下の例を考えてみましょう
上記のアプリケーション ANTS メモリ プロファイラを実行すると、Font と FontFamily のメモリ リーク (画面をアップロードできませんでした) と、これらのリークを削除する方法を確認できました。
c# - ANTS RedGateMemoryProfilerでメモリリークを解決できません
Prism 4を使用してWPFアプリケーションを開発しており、リソースが解放されていないために深刻なメモリリークが発生しています。ANTSメモリプロファイラーを使用して、ガベージコレクターによるメモリの解放を妨げているクラスを検出していますが、このツールは非常に新しいため、その出力についての理解は限られています。
テストケースは、リストからプラグインを選択できるウィンドウを開くことで構成されています。このウィンドウは、ヘッダー、一連のボタン、およびアクティブなWizardPage(つまり、UserControl)を表示するメイン領域を含むWizardコントロールをホストします。プラグインを選択して[次へ]ボタンをクリックすると、さらに多くのWizardPageコントロールがWizard Regionに登録され、RegionAdapterを使用してWizard.Pagesコレクションに追加されます。その後、ユーザーは[次へ] /[前へ]ボタンをクリックしてページ間を移動できます。ウィザードウィンドウを開いて[キャンセル]ボタンをクリックすると、ウィザードコントロールのファイナライザーが期待どおりに呼び出されます。ただし、[キャンセル]ボタンをクリックする前にウィザードウィンドウを開いてプラグインのComboBoxを展開すると、ウィザードコントロールのファイナライザーが呼び出されることはありません。これは、ANTSメモリプロファイラーのウィザード用インスタンスカテゴリのスクリーンショットです。
私たちはほとんどすべてを試しましたが成功しませんでしたが、誰かがここで何が起こっているのかを理解するのを手伝ってくれるでしょうか?
前もって感謝します。
wpf - WPF ユーザー コントロールとメモリ管理の破棄
WPF で wpf データ グリッド コントロールから継承されたカスタム データ グリッド コントロールを作成しました。
したがって、ユーザーがデータベースにクエリを実行すると、数百のレコードがそれぞれ 15 ~ 20 列で返されます。
画面を制御すると、この画面とそのグリッドに割り当てられているすべてのメモリが GC によって再利用されるべきだと私は信じていました。しかし、そうではありません。
Red Gate の Memory Profiler でアプリケーションをテストしていたところ、画面を開くと 30 MB のメモリが割り当てられていることが示されました。
しかし、この画面を閉じると、アプリケーションはどういうわけかまだそのメモリを保持しています.antメモリプロファイラで理由を調べていると、カスタムデータグリッドのために画面のインスタンスがまだメモリ内にあることがわかります.
ユーザー コントロールに unload イベントを追加し、プロセス中にアタッチしたすべてのイベント ハンドラーを切り離しました。
私は何を見逃して、何をすべきですか?
memory - nunit 大規模プロジェクトの統合テスト、メモリ不足の例外
600 以上のテストを含む大規模なプロジェクトの統合テスト (各テストが nhibernate を介してデータベースと対話する) を実行するために nunit を使用しています。問題は、10 ~ 15 分後に nunit がメモリ不足の例外をスローすることです。テスト間で nunit がメモリを解放しない理由を確認するために、redgate ant メモリ プロファイラを使用しました。テストごとに許可オブジェクトを再作成しようとしているようで、メモリが増え続け、最終的にメモリ不足の例外がスローされます。
1 つの統合テスト クラスでスナップショットを撮りましたが、しばらくするとメモリが増え続けることがわかります。メモリの解放を強制したり、この信頼の問題を解決したりするための nunit の呼び出しや設定は見つかりませんでした。
どんな助けでも本当に感謝しています。
ANTS スナップショット:
workflow - ワークフロー呼び出しメソッド内のこれらのDebugManagerおよびWinIOErrorsは何ですか?
WindowsサービスでANTSPerformanceProfilerを実行して、最適化しています。そのため、ワークフローの1つの実行が約436ミリ秒であることがわかりました。ワークフローのinvokeメソッド内で実行されている各メソッドをドリルダウンし、次の画像に示すような結果を見つけました。
上記のDebugManagerとは何ですか?WinIOErrorがあるのはなぜですか?初心者の質問をしてすみません、私はここで迷子になっています。できれば実行時間を短縮したいだけです。
memory-leaks - EPPLus ライブラリを使用して生成されたファイルのメモリ使用量が多い
こんにちは、みんな、
ANTS メモリ プロファイラーを使用して、IIS で EPPLUS (3.5 MB) を使用して Excel ファイルを作成するプロセスで、IIS ワーカー プロセス (w3wp.exe) に大量のメモリ (150 MB) が追加されることに気付きました。ダウンロードが完了した後、メモリ カウントは減少しません。私はこれとほとんど同じコードを使用しています: http://epplus.codeplex.com/SourceControl/changeset/view/c5783b32e89e#SampleApp/Sample1.cs。
EPPLus には必要なものがすべて揃っています。この小さな問題を除いて。「メモリ不足」のスレッドもいくつか見ましたが、どれも解決されていないようです。誰かが同じ問題に直面して修正した場合はお知らせください。
Generation 2 は多くのオブジェクトを保持しています。
問題: ExcelCell オブジェクトがジェネレーション 2 で保持されています。GC.Collect() を呼び出さずにこれをクリアするにはどうすればよいですか?
ありがとうございました。
c#-4.0 - ANTS プロファイラーによって生成されたグラフを理解する
ANTS プロファイラを使用してアプリケーションのメモリ使用状況をプロファイリングしていますが、Excell セル オブジェクトによってジェネレーション 2 で大量のメモリが保持されていることがわかります。アプリケーションは EPPlus ライブラリを使用して Excel ファイルを生成します。
ツールによって生成されたグラフの一部を添付しています。どのオブジェクトが参照を保持していてメモリを消費しているかを突き止めるためにさらにドリルする方法がわかりません。グラフをさらに掘り下げる方法について、ご意見をお聞かせください。
問題は次のとおりです。このグラフは再び同じオブジェクトを指しています。このツールを適切に使用していないと思います。
ありがとうございました
c# - .net アプリケーションのアンマネージ ヒープ サイズ
私は現在、このアプリケーションの稼働時間をできるだけ 100% に近づける必要があるため、リークがあるかどうかを判断するために取り組んでいる C# プロジェクトでメモリ分析を行おうとしています。Ants Memory Profiler バージョン 7.4 を使い始めたところ、マネージド メモリはそうではなかったのに、アンマネージド メモリが時間の経過とともに継続的に増加していることに気付きました。
Console.ReadLine()
さらに実験した後、命令をブロックするだけのプログラムで同様の分析を試みました。分析を実行したところ、同じことが起こっていることに気付きました。管理されていないヒープがゆっくりと成長していました。実際には、(スナップショット機能によって) ガベージ コレクターが呼び出されている間だけ大きくなるように見えました。では、ガベージ コレクションを繰り返し呼び出すと、アンマネージ メモリが際限なく増加するのはなぜでしょうか? ANTSと関係あるの?
できればwindbgやSOSなどの他のツールを使用して、管理されていないメモリの使用量を確認したいと思います。その内容を知ることは今のところ重要ではありませんが、これは長期的にはデバッグに役立つかもしれません。現在実行中のアプリケーションのアンマネージ メモリ使用量を特定しようとしているだけです。これが本当にアリの問題なのか、それとも環境がどのように機能するかについての私の誤解なのかを確認したいと思います. 私のプロセスに関する正確な情報を提供するために、ある種の.net、ビジュアルスタジオ、またはWindowsツールがあれば、これに役立ちます。
asp.net - System.Web.Hosting 名前空間での ASP.NET パフォーマンスの問題
ASP.NET 3.5 WebForms アプリのパフォーマンスの問題をトラブルシューティングするために RedGate ANTS を使用しています。非常に小さなページをクリックすると、読み込みに最大 15 秒かかることがあります。これらはデータのないページです - ほんの一握りのコントロールです。
ANTS プロファイラーは、ホットスポット メソッド (子との時間 > 5 秒) がすべて System.Web.Hosting 内にあることを教えてくれます。次に例を示します。
- ExecuteFunctionDelegate
- PipelineRunTime
しかし、これらの「独自の時間」はそれぞれ 0.001 秒未満です。他にホットスポットはありません。では、この問題を引き起こしている可能性のあるこれらのメソッドの「下」には何がありますか?