問題タブ [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.
android - onCreate メソッドでダイアログを作成する - リーク
アプリの実行中に断続的に次のエラーが発生するようです。
「アクティビティは、最初にここに追加されたウィンドウ com.android.internal.policy.impl.PhoneWindow$DecorView@40521348 をリークしました」
私がやっているのは、次のように onCreate() メソッドでダイアログを作成することだけです。
問題の可能性はありますか?
java - この場合、JVM が終了しないのはなぜですか?
コードにスレッド リークがあると思いますが、その理由はわかりません。ここにコードがあります -
私はこれを Eclipse から実行していますが、問題は、FileNotFoundException にヒットしたときに JVM が停止しないことです。手動で終了する必要があります。理由はわかりませんが...
sql - .Net 4.0 では SQL ハンドル リークが発生するが、.Net 3.5 では発生しない
次のサンプル コードは、ハンドルをリークします。ハンドル数は 133 から始まり、2 時間以内に 900 に達しました。サンプルは VS2010 と .Net 4.0 です。これは .Net 3.5 では発生しません。すべての Win2008 R2 サーバーで、3 台以上のマシンでこれを再現しました。SQL 2008 と SQL 2012 の両方。これらのマシンは VM であり、週に 2 回常にロールバックされるため、クリーンです。
ProcMon.exe のアクティビティと ProcExp.exe のコール スタックを観察しました。ProcMon.exe は、CreateThread() と ExitThread()を繰り返し記録しました。その後、ProcExp.exe は 、新しく作成された TID に対してcld.dll!StrongNameErrorInfo+0 x18910 を示しました。最後に、ProcExp.exe の THREAD オブジェクト数が 1 つ増えました。このプロセス全体が何度も繰り返されます。
背景: このサンプルは、本番コードのリークを絞り込むために作成しました。そのコードは .Net 3.5 では問題なく動作しましたが、.Net 4.0 ではリークします。
接続を開くときに追加のフラグを設定する必要がある場合はお知らせください。
java - JAI create はファイル記述子を開いたままにするようです
最近まで動作していた古いコードがいくつかありますが、Java SE 6 ではなく OpenJDK 6 を使用する新しいサーバーで実行されるようになったため、動作しなくなったようです。
問題は JAI.create を中心に展開しているようです。拡大縮小してpngファイルに変換するjpegファイルがあります。このコードは以前はリークなく動作していましたが、OpenJDK を実行するボックスに移動したため、ファイル記述子が閉じないように見え、サーバーの tmp ディレクトリにますます多くの tmp ファイルが蓄積されていることがわかります。これらは私が作成するファイルではないので、それを行うのは JAI だと思います。
別の理由として、新しいサーバーのヒープ サイズが大きくなっている可能性があります。JAI がファイナライズでクリーンアップしても、GC の発生頻度が低い場合は、そのためにファイルが山積みになっている可能性があります。ヒープ サイズを減らすことはできません。また、ulimit を増やすこととは関係のない問題が発生しているようです。
これを実行するとリークするファイルの例を次に示します。
いくつかのコード:
私の質問は次のとおりです。
- 誰かがこれに遭遇して解決しましたか? 作成された tmp ファイルは私のものではないため、それらの名前が何であるかわからず、実際には何もできません。
- 画像のサイズ変更と再フォーマットに最適なライブラリは何ですか? Scalr について聞いたことがありますが、他に調べるべきことはありますか?
現時点では古いコードを書き直すのは避けたいのですが、他に選択肢がない場合は...
ありがとう!
memory-leaks - コンストラクターでこれをリークするのを修正する方法
私はクラスを持っています
これが漏れているという警告が表示されます。どうすれば修正できますか。
java - 基になるストリームを閉じると、本当にリソース リークが発生しますか?
プログラムの 1 つで動的コード分析ツールを実行したところ、このパターンがリソース リークとして特定されました。
具体的には、分析ツールはnew BufferedInputStream(...)
呼び出しが閉じられていないため、リソース リークとしてマークしました。ただし、このパターンでは、基になるストリームfileInputStream
が閉じられBufferedInputStream
、スコープ外になります。
注:最初に質問を投稿したときに明確にすることを怠りましたが、これが「最良の」実装ではないことを認識しています。ただし、ここに事実上のリソース リークがない場合、このパターンのすべてのインスタンスについて従来のコードベースを精査し、外側のストリームを閉じるか、try-with-resources などの新しい構造に置き換えることはほとんどありません。つまり、「壊れていない場合は、直さないでください。」
この状況を考えると、これは実際にリソース リークでしょうか?
windbg - 可変ハンドルを作成し、決して解放しないアプリケーション
私の C++ アプリケーションはミュータント ハンドルを作成しています。ハンドルが作成されている場所が見つからなかったので、Windbg と with を使用しました!htrace
。正確な関数名はありません。すべてのシンボル ファイルが読み込まれ、アプリケーションがデバッグ モードでビルドされます。
!htrace
開いているハンドルを表示しますが、ハンドルが開いている正確な機能は表示されません。跡はこんな感じ
この問題をデバッグする別の方法はありますか?
java - リソースリーク「空白」は閉じられません
スキャナーを作成すると、このエラーが発生するようです。エラー名を検索してこれを解決しようとしましたが、これまでのところメッセージの表示を停止できませんでした。
コード:
エラーが発生する部分: