問題タブ [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 投票する
1 に答える
3960 参照

amazon-web-services - 例外後の S3 クライアント接続リーク

私は AWS SDK にかなり慣れていません

S3 からファイルを取得しようとしていますが、そのファイルが存在しない可能性があり、明らかに Amazon S3 クライアントでそれを確認する簡単な方法があるため、とにかくそのオブジェクトを取得しようとしています。エラー message.equals("noSuchKey")。(そのようなフローを制御するために例外を使用することはベストプラクティスではありませんが、より良い方法を見つけることができませんでした)

しかし、問題は、http プーリング クライアントが原因でリソースがリークし、それを閉じる方法が見つからないことです。

コードは次のとおりです。

catch 句内では、オブジェクトが null になるため、実際に閉じることはできません..また、その入力ストリームを閉じることもできません。ログは私に与えます:

このメソッドを呼び出して catch 句を数回入力すると、サーバーが非常に遅くなります。これは、新しい PoolingClientConnectionManager が初期化されるたびに明らかに示されていますが、それを閉じる方法が見つかりません。

どうすれば閉じることができますか?または、そもそも例外処理を使用しないようにするにはどうすればよいですか?

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

java - フル GC の後、ソケットのインスタンスは増え続けていますか?

以下のコード スニペットを使用したソケット アプリケーションがあります。ソケットがfinallyブロックで閉じられていることを確認しました。昨日か前日のどちらかだと思います。次に、このFGCの前とFGCの後のjmapを介してソケットのインスタンスを比較しますが、インスタンスは減少せず、増加し続けますか? 何が原因でしょうか、それとも jmap を参照するのは間違っていますか? フル GC の後、Old Generation が 0 にならないという別のことは?

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

sockets - Blackfin uClinux ソケット作成の失敗

私のクライアントには、Blackfin STAMP ボードで実行されている古いバージョンの uClinux、カーネル 2.6.22 があります。メイン アプリケーションは 14 のプロセスに分割され、さらに、ボード上で実行されている Web サーバーがあります。

私たちが目にしているバグは、VOIP アプリケーションがファイル ハンドルを使い果たし、新しいソケットを作成できないように見える一方で、Web サーバーは正常に動作し続けることです。私が知っているすべてのデバッグ手法を試しました。JTAG デバッガーを使用していますが、デバッグ シンボルに対してメモリが小さすぎます。Valgrind などでコンパイルできません。推測はありますか?

ありがとう、

マイク

0 投票する
0 に答える
379 参照

iphone - AFNetworking 2 POST メモリ リーク

AFNetwoking を使用しましたが、単純な AFHTTPRequestOperationManager POST:parameters:success:failureでメモリ リークが発生しました。

関連するスクリーンショットは次のとおりです。

ここに画像の説明を入力

拡張 - CFURLCredential:

拡張 - NSCFString

を使用してARCいます。メソッドがあり、そのメソッド内に上記のリクエストがあります。
View Controller が表示されると自動的に呼び出されます -- viewDidAppear

メソッドが呼び出されるたびに、メモリ リークが発生します。私が渡しているのはディクショナリ (上記の例ではない) だと思ったので、ディクショナリ パラメータを削除し、@{"key":@"value"}安全のためにシンプルに変更しました。そしたら、またもや漏水。

前に、メソッドがバックグラウンドで呼び出されていたためにメモリ リークが発生したため、メソッドがIBAction適切にトリガーされるように、ボタンを配置してそれを にリンクしようとしました。

それでも、ボタンを押してリクエストが終了するたびに、常にリークが発生します。
ちなみに、iPhone4 iOS 7でテストしています。

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

java - Java でのファイル読み取り、同じファイル リーダーを使用

次のコードで、タスクに同じ変数を使用して読み取る 2 つのファイルがあります。

Java でのファイル読み取りは、開かれたストリームを閉じて、最初のファイル filename1 に関連付けられているシステム リソースを解放することを気にしませんか?

例外はスローされません。

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

java - IOUtils.closeQuietly は「リソース リーク」警告をどのように隠しますか?

バックグラウンド

「closeQuietly」と呼ばれるIOUtilsで使用する素晴らしい関数があり、そこに何が入っていてもストリームを閉じます。

例えば:

どういうわけか、「リソースリーク:「入力」はこの場所で閉じられていません」という最終ブロックで呼び出すと、Eclipseの警告も非表示になります。

これは、上記のコードでは、そのような警告がないことを意味します。

問題

それ自体の「外の世界」に関する警告をどのように隠しているのかわかりません。

私が試したこと

このライブラリのコードをコピーして確認しようとしましたが (例はこちら)、新しいクラスで使用すると警告が表示されます。意味がありません...

独自のクラスで警告が発生することを示すために作成したサンプル コードを次に示します。

利用方法:

インストールされているEclipseのバージョンを含めて、私が見ているものは次のとおりです。

ここに画像の説明を入力

質問

それはどのように行うのですか?

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

c++ - CImageList はリソースを削除しますか?

私たちのプロジェクトで GDI リークの問題に遭遇したので、考えられる問題を探し始めました。実装者が LoadIcon を使用してアイコンの新しいインスタンスを作成した場所を見つけました。リソースを埋め込んだ要素を閉じるときに、DestroyIcon を使用してリソースを削除する必要があることを知っています。私が知らないのは、CImageListが追加された要素でこれを自動的に呼び出すかどうかということです? 今日まで、これに対する正確な答えは見つかりませんでした。

前もって感謝します。

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

sockets - ipython ノートブックとリークしているファイル記述子

ipython ノートブックで実行しているコードでファイル記述子のリークに問題があります。で大量のファイルをダウンロードurllib2してローカルに保存しています。どうやら、urllib2ファイル記述子のリークの履歴があり、それが問題を引き起こしていると思われます。最後に、私はIoError: Too many open files.

回避策として、を使用して定期的にソケットの束を閉じos.closeます。残念ながら、ipython notebook閉じたくないソケットがたくさん実行されています。

どのファイル記述子/ソケット/その他が属しているかを特定できる方法はありますipythonか?

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

java - プロセス ファイル記述子を Java オブジェクトにマップする方法

ファイル記述子をリークする Web アプリがあります。本番環境では、Java プロセスのファイル記述子の数は時間の経過とともにゆっくりと増加し、数か月後にはファイル記述子が不足します。ファイル記述子の現在の制限はかなり高く、10240 です。

Java プロセスを見ると、ファイル記述子のリストは次のようになります。

私がやりたいことは、1 つのファイル記述子を選択し、ライブ JVM 内のオブジェクトに何らかの方法でマップして、どのオブジェクトが取り残され、ファイル記述子が添付されたオブジェクトへの参照を保持しているのかを調査できるようにすることです。

Eclipse でライブ JVM に接続したかったのですが、そのためには JVM を再起動してデバッグ ポート/パラメータを追加する必要がありますが、同じ状況が現れるまで数か月待つ必要があります。

JVMを再起動せずにそれを行うにはどうすればよいですか? この特定のケースで役立つダンプ ツールはありますか?