問題タブ [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.
c# - Webサービスのメモリリークの原因
そのアプリケーションが応答を停止するまで、ますます多くのプライベートバイトを使用するWebサービスがあります。マネージヒープ(主にGen2)は約200〜250 MBを示しますが、プライベートバイトは1GBを超えます。管理対象ヒープの外部でのメモリリークの考えられる原因は何ですか?
私はすでに次のことを確認しました:
- 多作の動的アセンブリ(Xmlシリアル化、正規表現など)
- セッション状態(オフ)
- System.Policy.Evidenceメモリリーク(SP1がインストールされている)
- スレッドデッドロック(Joinを使用せず、ロックのみ)
- SQLOLEDBの使用(SqlClientを使用)
他にどのような情報源を確認できますか?
memory-leaks - フレームワークでの静的 EventHandler メモリ リーク
現在、.NET WinForms アプリケーションで発生しているメモリの問題のトラブルシューティングを行っています。SciTech の .NET Memory ProfilerとdotTraceを使用していますが、それらはすべて、.NET Framework コントロールの静的イベント ハンドラーによるルート割り当てを示しているようです。google'ing から、これに関するレポートがこことここに見つかりましたが、これは .NET Framework の v1.1 で報告されているようで、修正は 2.0 で約束されています。2.0 で実行していますが、まだこれらの問題が発生しています。私が見つけた上位 25 のメモリ違反者はすべて、これらの静的イベント ハンドラー、特に SystemEvents.UserPreferenceChanged を指しています。 この男これらのハンドラーを巻き戻す方法を見つけるために多大な努力をしました。これはまだ試していませんが、マイクロソフトのサポート チケットに記載されている回避策を試しましたが、どれもうまくいきませんでした。
イベント ハンドラー (特に長寿命の静的ハンドラー) のリークの可能性についてはよく認識していますが、これはほとんど制御できません。誰でもこれを経験したことがありますか?
delphi - Delphi 用のプロファイラおよびメモリ分析ツール
最近、Delphi 4 から Delphi 2009 にアップグレードしました。Delphi 4 では、Primoz Gabrijelcicの GpProfile をプロファイラーとして使用し、Turbo Power の Memory Sleuthをメモリ分析とリークのデバッグに使用していました。どちらも私にとってはうまくいきました。しかし、今は Delphi 2009 で動作する新しいツールが必要です。
Delphi のプロファイリング/分析ツールのリーダーは、明らかにAutomatedQA の AQTimeです。彼らは最近、Atanas Soyanovの Memproof を手に入れました。これは優れた無料のメモリ分析ツールであり、その機能を AQTime に組み込みました。しかし、AQTime は個々のプログラマにとって非常に高価です。実際には、Delphi 2009 へのアップグレードよりも多くの費用がかかります。
私の質問は次のとおりです。現在のバージョンの Delphi でプロファイリングとメモリ分析を行うための、あなたが満足し、推奨している他の安価なオプションはありますか?
補遺: 初期の回答者は、Delphi に既に含まれている FastMM マネージャーがメモリ リークの検出に非常に優れていることを示しているようです。
では、ソース コードのプロファイリングに代わる良い方法はありますか?
私が興味を持っているのは、Michael Adolphによる ProDelphi で、コストは AQTime の 6 分の 1 以下です。使いますか?AQTime は 6 倍の価値がありますか?
補遺 2: AQTime と ProDelphi の両方の試用版をダウンロードしました。
AQTime は少し圧倒され、最初は少し混乱しました。それを接続するために必要ないくつかのトリックを見つけるのに数時間かかりました.
ProDelphi は、私が慣れ親しんでいた GpProfile と非常によく似ていました。しかし、そのウィンドウはごちゃごちゃしていてわかりにくく、GpProfile ほど良くはありません。
私にとって大きな違いは次のとおりです。
ProDelphi はコードを変更します。AQTime はそうではありません。コードを変更すると、何か問題が発生した場合にデータが破損する可能性がありますが、GpProfile での私の経験では、そのようなことは一度もありませんでした。AQTime のプラス 1。
ProDelphi では、最適化をオフにする必要があります。しかし、プロファイリングしたいのは、最適化がオンになっているプログラム、つまりその実行方法です。AQTime のプラス 1。
ProDelphi では、関数またはプロシージャまでプロファイルを作成することしかできません。AQTime は、個々の行に移動できます。AQTime のプラス 2。
ProDelphi には 20 のルーチンをプロファイリングする無料バージョンがあり、そのプロ バージョンの価格は 100 米ドル未満です。AQTime は 600 米ドルです。ProDelphi の場合はプラス 4。
これでスコアは 4-4 になりました。どう思いますか?
補遺 3: Primoz Gabrijelcic は、GpProfile を再び機能させることを計画しています。以下の回答のいくつかに対する彼のコメントを参照してください。彼はGabrとして StackOverflow に参加しています。
補遺 4: 結局、プロファイラーの解決策があるようです。以下で説明する Andre のオープン ソース asmprofilerを参照してください。
perl - Perl プログラムでメモリ リークを見つけるためのツールはありますか?
Windows 2003 Server で ActiveState Perl 5.6 を使用していますが、メモリ リークの問題が発生しています。それらを見つけるのに役立つ良いツール(または手がかりを与える悪いツール)はありますか?
perl - なぜこれが漏れるのですか?
Perl でこのリークが発生するのはなぜですか?
ありがとう!
memory-leaks - 最適なメモリ リークの定義
開発者がメモリ リークについて話しているように感じますが、それが何を意味するのかを尋ねると、多くの人はわかりません。これらの状況を防ぐために、いずれかを決定しましょう。
ウィキペディアの定義はありません...
メモリ リークの最良の定義は何 ですか? また 、それを防ぐ最善の方法は何ですか?
memory-leaks - 「良い」メモリリークのようなものはありますか?
重複の可能性:
メモリリークは大丈夫ですか?
メモリリークが必要な特殊なケースがあり、実際にはまれな状況では良いことをどこかで読みました。しかし、それが正確に何であったか思い出せません!
誰かがそのような議論を知っているか覚えていますか?
ありがとう、アディ
java - Java は、オブジェクトの割り当て解除とガベージ コレクションの後もシステム メモリを使用します。
JVM 1.5.0 (Mac OS X デフォルト) を実行しており、アクティビティ モニターで Java プログラムを監視しています。私は次のものを持っています:
}
では、ガベージ コレクターが正常に動作しているように見えても、物理メモリが解放されないのはなぜでしょうか。
javascript - window.unloadでのJavascriptメモリリークのクリーンアップ
Javascriptクライアント側アプリケーション。
メモリリークを排除しようとすると、(控えめに言っても)醜いコードになります。
それらを回避しようとしてすべてのコードを台無しにする代わりに、window.unloadでクリーンアップしようとしています。
私たちは主にelement.onevent=function(){..};
パターンを使用します。その結果、クロージャ(主に必要)とメモリリークが発生します。
javascriptフレームワークは使用しません。
出口で適切にクリーンアップする方法について何かアイデアはありますか?
誰かが同じことをしますか、それともあなたはそれらを避けようとしていますか?
performance - できればVBScriptでWindows(XP)パフォーマンスカウンターにアクセスする
Quick Test Professional(QTP)9.5とInternet Explorer 6を使用して、ブラウザのメモリリークについてWebアプリケーションをテストしています。PerfMonはメモリ使用量を経時的に監視しますが、そのデータをテスト結果に同期して、どの手順を実行するかを確認する必要があります。ブラウザのメモリリークをトリガーします。QTPのスクリプト言語はVBScriptであるため、特定のパフォーマンスカウンター(この場合はプロセス「IExplore.exe」の「プライベートバイト」)を取得するにはどうすればよいですか?