問題タブ [resource-leak]

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.

0 投票する
5 に答える
1960 参照

resource-leak - 「システム」プロセスによる100%のCPU使用率の原因の診断

Win32APIを使用してC++で実装されたWindowsサーバーアプリケーションがあります。これは、多くのシリアルおよびTCP/IP通信を実行します。実行すると、CPU使用率は100%に達するまで徐々に増加します。タスクマネージャーは、CPU使用率のほとんど(> 75%)が「システム」プロセスによるものであることを示しています。サーバープロセスを強制終了すると、CPU使用率は通常に戻ります。

問題が何であるかを正確に診断するための「簡単な」方法はありますか?

I / O接続が開いていて、閉じられていないのではないかと思われるため、OSはこれらの要求の処理にますます多くの時間を費やしていますが、問題を解決する前に、それが当てはまるかどうかを確認したいと思います。


更新:をいじっxperfてみたところ、システムプロセスがその時間の半分以上をに費やしていることがわかりましたntoskrnl.exe!KxWaitForSpinLockAndAcquire。これについては何も知りませんが、関数の名前から、デッドロック/競合の問題がある可能性があります。

システムが多く使用している他の関数には、、、、、およびが含まNETIO.SYS!FilterMatchEnumれます。NETIO.SYS!MatchConditionOverlapNETIO.SYS!IsFilterVisibleMpNWMon.sys!NetFlowUpendByCompletionHandle

0 投票する
2 に答える
2785 参照

c++ - Windows USERオブジェクトのリークを追跡するにはどうすればよいですか?

タスクマネージャーで表示できるUSERオブジェクトをリークしているプログラムがあります。どのタイプのリソースがリークされているかを判断する方法はありますか?オブジェクトタイプごとに分類するGDIリーク用のGDIビューなどのプログラムを使用しました。USERオブジェクトにこれに似たものはありますか?

0 投票する
1 に答える
105 参照

iphone - メモリ リークの問題。Instument は 2 行目にエラーを表示します

0 投票する
1 に答える
1283 参照

android - KeyGuardManager 使用時のリソース リーク

KeyGuardManager と KeyguardLock を使用して電話のロックを解除しようとしていますが、最初の数回しか機能せず、アプリケーションを強制終了すると次のようになります。

WindowManagerService.mKeyguardTokenWatcher: cleaning up leaked reference

この問題はおそらくKeyGuardManager の問題に関連していますが、記載されているexitKeyguardSafely()Android KeyguardManager API リファレンスに見つかりません。exitKeyguardSafely()の代わりに、exitKeyguardSecurely()を使用してみましたが、役に立ちませんでした。

助けてください!

0 投票する
1 に答える
1040 参照

visual-studio-2008 - これはメモリリークですか?カーネル リソース リーク? (C++、パラレルスタジオ)

背景: ファイルからデータを読み込むためのコードに取り組んでいます。データの例は改行で区切られています。また、データにはメタレベルがあり、セミコロンは区切り文字として機能し、シーケンスの終わりに達したことを示します。ファイルには多くのシーケンスが含まれています。ファイルを開き、データの行を読み取ってベクトルとして保存し、データを処理してから、次の行を読み取ります...ファイルの終わりまで。

以下は正常にコンパイルされ、私の Linux マシンで valgrind を使用して実行すると、メモリ リークは見つかりません。しかし、研究室の Windows マシンで Parallel Studio の c++ インスペクタ ツールを使用すると、プログラムのメモリ関連のエラーが両方ともこのファイルに報告されます。

メモリ リークが報告されており、次の行に起因しているようです。

また、次のようなカーネル リソース リークも報告されています。

これらのエラーが発生する理由と、それらを修正するために何をすべきかを理解できる人はいますか? これがメモリ リークである理由がわかりません。また、カーネル リソース エラーについても確信が持てません。また、私がここでとんでもない愚かなことをしている場合は、遠慮なくお知らせください。

0 投票する
2 に答える
364 参照

python - C ライブラリでのファイル ハンドル リーク (おそらく) は、NFS で問題を引き起こします (+python、しかしそれは偶発的です)

ここに非常にクールな問題があります。

私はPythonモジュール(foo.py)を呼び出すPythonスクリプト(メイン)を持っています。これは別のPythonモジュール(barwrapper.py)を呼び出し、LoadLibraryを使用してlibbar.soライブラリを動的に開いてアクセスします。

libbar とチェーンの残り全体が開いてファイルを作成し、タスクを実行します。インポートされたモジュールによって作成された一時ディレクトリを取り除くために、メインの python スクリプトで rmtree を発行すると、問題が発生します。rmtree は、スクリプトの最後、終了する直前に呼び出されます。.nfs-whateverディレクトリに隠しファイルが含まれているため、呼び出しは失敗します。これは、削除されたファイルであると思われます。.nfs-whateverこれらのファイルはコード内で開いたままになっているようで、ファイル記述子が解放されるまで、nfs はそれらをこれらのファイルに強制的に移動させます。この状況は他のファイルシステムでは発生しません。保持されている記述子に関連付けられているファイルは事実上削除されますが、記述子が閉じられるまでカーネルによってアクセス可能なままになるためです。

私たちは、.so ライブラリがファイル記述子をリークしていることを強く疑っています。これらの閉じられていないファイルは、クリーンアップ時に rmtree パーティを台無しにします。barwrapper で .so ファイルをアンロードすることを考えましたが、明らかにそれを行う方法はありません。また、dynloader が実際にプロセス空間から lib を削除して記述子を閉じるのか、それともアンロード済みとしてマークするだけなのかはわかりません。それだけで、他のものに置き換えられるのを待っていますが、記述子がリークされています。

この問題に対する他の回避策は本当に考えられません (リークの修正は別として、これはサードパーティのライブラリであるため、やりたくないことです)。明らかに、これは nfs でのみ発生します。私たちがそれを修正するために試すことができるアイデアはありますか?

0 投票する
1 に答える
64 参照

windows - 異常なメモリリークをデバッグするためのデバッグ手法

大量のメモリをリークするWindowsアプリケーション(レガシー)があります。プライベートバイトをリークすることはありません。同じ(トピック的に)Windows dll-sの多くのインスタンスを時々ロードし続けることが、ProcessExplorerでのみ確認できます。

dll-sがプロセススペースにマップされている瞬間を「トラップ」して、それを(アプリケーションシンボルを使用して)ソースコードに追跡できるようにするために使用できるツールはありますか?

0 投票する
1 に答える
2047 参照

c# - c#でファイルを開く/保存ダイアログを使用しているときにリソースリークを防ぐ方法

デスクトップアプリケーション(C#)でファイルの保存/開くダイアログを使用しています。初めてダイアログを開くと、ハンドルが 100 ずつ増えます。ダイアログを閉じた後、ハンドルは減りません。次回以降、ハンドルは 10 ほど増加し、2 ~ 4 に減少しています。

dispose を呼び出して null にすることで、ハンドルを減らしてみました。また、ブロックを使用してみました。しかし、それらのどれも問題を解決しませんでした。

これに対する回避策を教えてください。または、任意のカスタム コントロールなどを使用できますか

これについてアドバイスをお願いします

前もって感謝します

コード: コードは

0 投票する
4 に答える
589 参照

java - ファイルを適切に閉じていることを確認する Java 単体テストの適切なパターンは何ですか?

ファイル ハンドルまたはおそらくストリームを適切に閉じていないコードベースに問題があります。最終的に、非常に重い負荷がかかると、TooManyOpenFiles 例外が発生します。lsof の出力に基づいて、リークがどこにあるか (ロギング システム内) はかなりわかっていますが、私の質問は、完了時にリソースが適切に閉じられていることを確認する単体テストを作成するにはどうすればよいかということです。JRE を照会して、現在開いているファイルの数を調べる方法はありますか? ファイル操作を傍受して監視できるようにすることはできますか?

すべてのファイル I/O を管理し、参照をカウントし、そのように閉じていることを確認するために、コードをインストルメント化する必要があると思いますが、上記のアイデアに似たトップダウンのソリューションを誰かが知っている場合、それは大きな助けになるでしょう!

0 投票する
3 に答える
9391 参照

windows - ハンドルリークを追跡する方法は?

私のアプリケーションの 1 つで、ハンドルの数が増えていることがわかりました。アプリケーションを使用せずに、およそ 1 秒ごとに数値がインクリメントされるため、バックグラウンド処理コードの一部でハンドル リークが発生しているはずです。

このようなリークを追跡するにはどうすればよいですか? これを支援するツールはありますか?ハンドル リークをトレースするときに探すべきパターンは何ですか? ハンドルリークを引き起こす最も一般的な間違いは何ですか?

たくさんの質問がありますが、1 つの質問にまとめるのに十分な関連性があることを願っています。事前にご連絡いただきありがとうございます。