問題タブ [memory-leak-detector]
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.
memory-leaks - 直接リークと間接リークの違いは何ですか?
LeakSanitizer ツールから次の出力を得ました。ツールが理解する直接リークと間接リークの違いは何ですか?
c++ - メモリ リークの検出: mallinfo、_heapwalk
私の目標は、プラットフォームに依存しないフリー メモリ チェッカーを作成することです。何かのようなもの:
POSIX には、かなり包括的な空きメモリ統計を提供する mallinfo() があります。フィールドの 1 つは uordblks で、私が望むものを正確に示しているようです。これにはオーバーヘッドが含まれます。たとえば、マシンの新しい int が 32 バイトを割り当てることが示されています。しかし、結局のところ、すべての割り当てを解除した場合は 0 が表示され、何かを忘れた場合はゼロではありません。
Windows には _heapwalk() があります。これは mallinfo() よりも少し複雑です。ヒープ チャンクを繰り返し処理し、サイズを自分で計算する必要があります。そして、あなたがそれをした後でも、結果は私が期待するものとはまったく異なります:
結果:
割り当てられたメモリへの最初のリクエストで、彼の内部ニーズのために最初の 4 キロバイトのメモリが割り当てられているように見えますが、現在のステータスが正確に表示されます。
実際のカウントを開始する前に、何かを事前に割り当てようとしましたが、役に立ちません。
Windowsで適切に行う方法を教えてもらえますか?