問題タブ [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.

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

.net - テーブル NewRow() が原因でメモリ リークが発生する

メモリ リークを調査しているときに、ループ内の Table で NewRow() を何度も呼び出すことが原因であることがわかりました。ただし、作成された DataRow が Table Rows コレクションに追加されることはなく、Table Rows Count が 0 を超えることもありませんでした。

私の質問は、新しく作成された DataRow が Rows コレクションに追加されず、NewRow から返された DataRow が常に同じローカル変数に割り当てられているにもかかわらず、NewRow が呼び出されるたびにこれがより多くのメモリを使用するのはなぜですか (したがって、明らかに最後の新しい行を破棄します) )。

なぜコードがテーブルに追加されない DataRows を作成するのかという問題は無視してください!

0 投票する
9 に答える
31547 参照

java - Eclipseでスレッドダンプを強制する方法は?

BEA Weblogic Server v9.2 ランタイム環境を介して Eclipse 内で Weblogic アプリケーションを起動しています。これがコマンドラインから直接実行されている場合は、ctrl-BREAK を実行してスレッド ダンプを強制します。Eclipseでそれを行う方法はありますか?

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

.net - ネイティブ ライブラリの呼び出しが原因でマネージド コードがメモリ リークしているかどうかを確認するにはどうすればよいですか?

ネイティブ ライブラリを呼び出すマネージド DLL があります。通常、このネイティブ ライブラリは IntPtrs を返します。これらをネイティブ ライブラリの他のメソッドに渡して処理を実行したり、IntPtr に関連付けられたインスタンスを解放するようライブラリに指示したりできます。ただし、この方法で解放する必要があるのは一部のインスタンスのみであり、他のインスタンスはライブラリによって管理されます。問題は、どのインスタンスを解放する必要があり、どのインスタンスを解放してはならないかについて、ドキュメントが常に明確であるとは限らないことです。

私が知りたいのは、私のコードが解放する必要のあるポインターへの参照を保持しているかどうかを確認できる方法があるかどうかです。そのため、メモリ リークが発生していますか?

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

cocoa - _NSAutoreleaseNoPoolエラーのあるNSThread

私はインターネットにファイルを保存する方法を持っています、それは機能しますがただ遅いです。次に、ユーザーインターフェイスをよりスムーズにしたいので、遅いタスクを処理するためにNSThreadを作成します。

次のようなエラーのリストが表示されます。

NSThreadがない場合、次のようなメソッドを呼び出します。

そして、NSThreadを使用してメソッドを呼び出すために以下を使用しました。

ありがとう。

0 投票する
9 に答える
486 参照

.net - .NET コードを作成する際のメモリ リークの回避に関する「注意事項」リストは何ですか?

何千行もの .NET コードを記述するときに、メモリ リークを避けるために何を心に留めていますか? 私は検査よりも予防​​の大ファンです。この点に関して、「String1+String2」の代わりに「StringBuilder」を使用して文字列を結合する有名な例がありますが、あなたのコーディング経験から他に何がありますか?

あなたの考えを共有してくれてありがとう。

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

c - Fortran プログラムの mtrace

mtraceFortran プログラムでメモリ リークを検出するために使用しようとしています。gfortran コンパイラを使用しています。mtrace の (動作する) C の例については、ウィキペディアのエントリを参照してください: http://en.wikipedia.org/wiki/Mtrace

私は両方の方法を試しました。つまり、mtrace() と muntrace() をラップして fortran プログラムから呼び出し、また mtrace() と muntrace() を直接呼び出す C プログラムを作成しました。どちらの方法でもメモリ リークを検出できませんが、ここでは後者のみを紹介します。

example.c

leaky.f90

私はコンパイルします:

次に、次のように実行します。

raw.txt mtrace次に、出力を次のように解析します。

そして得る:

メモリリークはありません。

私が間違っていることはありますか、またはmtraceリークのあるfortranメモリ割り当てを見つけるためにできることはありますか? gfortran はトレースしない別のmalloc呼び出しを使用していると思いmtraceます... 実際、上で書いたように、(ラップされた)mtrace()muntrace().

EDITED:他のオプション(ここではまだ言及されていないものを含む)を検討しましたが、デバッグ中の実際のコードはP6 / AIXで実行されるため、Valgrindは「ちょうど」不便です(別のマシンで実行する必要があります)一方、Forcheckは不便 (別のマシンで実行する必要があります) で、高価です (~ 3k$)。現時点では、mtrace が最適なソリューションです。

再編集:私の推測

gfortran はトレースしない別のmalloc呼び出しを使用していると思います...mtrace

正しかった。実行可能ファイルを調べると ( または のいずれかでnm)readelf呼び出しはありませんmalloc()が、_gfortran_allocate_arraymalloc を呼び出す可能性があるものがあります)。他のアイデアはありますか?

再度編集: 回答を投稿しましたが、受け入れることができません ( http://stackoverflow.uservoice.com/pages/general/suggestions/39426にアクセスして、機能をリクエストしてください。本当に必要です。評判の向上は必要ありません)。

0 投票する
8 に答える
9124 参照

c++ - new char[n] で auto_ptr を使用するのは間違っていますか

を使用して一時的な自動削除文字バッファを宣言した場合

バッファが範囲外になると、バッファは自動的に削除されます。delete を使用してバッファを削除すると仮定します。

ただし、バッファーは new[] を使用して作成されているため、厳密に言えば、バッファーは delete[] を使用して削除する必要があります。

この不一致が原因でメモリ リークが発生する可能性はありますか?

0 投票する
10 に答える
51612 参照

c - C で malloc と free のラッパー関数を作成する

メモリ リークを通知するために、C用freeおよびC用のラッパー関数を作成しようとしています。mallocこれらの関数を宣言する方法を知っている人はいますか?私が呼び出すmalloc()free()、標準ライブラリ関数ではなくカスタム関数が呼び出されますか?

0 投票する
10 に答える
8918 参照

c# - ループ内で新しい StringBuilder を作成するよりも、StringBuilder の Remove メソッドを使用する方がメモリ効率が良いですか?

C# では、メモリ効率が高いのはどちらですか: オプション #1 またはオプション #2?

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

javascript - この JavaScript が IE7 でメモリ リークを引き起こす理由を誰か説明できますか?

コードはかなり長いですが単純です。

  • 100 個のリーキーな JavaScript オブジェクトが作成されます。
  • JS オブジェクトから 10 個の漏洩要素が作成されます。
  • 1 要素が削除され、1 要素が 10000 回追加されます。

detachEvent呼び出しが正しく機能していないと思います。また、this.eventParams配列から単純な変数に変更すると、リークはなくなります。なんで?