4

FastMM4 で示されたようにメモリ リークを引き起こす可能性のあるコードを取り除くために FastMM4 で時間を費やした後、Windows 7 で約 1 か月ノンストップでソフトウェアを実行してテストしました。ソフトウェア プロセスのタスク マネージャー。

> -CPU started out at 1% and 0%. Now it is bouncing around from 2% to 5%
> -VM usage started out at 11,852KB. Now it is at 4,900kb but bouncing
> around from 4,900kb to 5,000kb.

これは、ソフトウェアでメモリ リークが発生していることを意味しますか? 私は混乱し、心配しています。

前もって感謝します、

4

4 に答える 4

4

それはかなり普通のメモリ使用量のように聞こえます。プログラムはメモリを必要とする何かを実行し、メモリ使用量が増加します。プログラムは実行中の処理を完了してメモリを解放し、メモリ使用量は元に戻ります。メモリリークとは、メモリ使用量が増加し、それが終わったらメモリを解放しないために増加し続けることです。

FastMM4を使用している場合は、メモリリークを引き起こす可能性のあるものを探し回る必要はありません。フルデバッグモードとログオプションをオンにするだけで、実行時にリークするメモリが検出され、タイプとスタックトレースを含むファイルが書き出されます。

于 2011-04-14T16:06:01.777 に答える
4

いいえ、メモリ使用量が増加し、最終的にアプリケーションが使用可能なメモリをすべて使用すると、メモリ リークが発生し、心配する必要があります。

于 2011-04-14T15:48:45.700 に答える
3

アプリケーションが何日も正常に動作しているように見えても、使用されていない (または頻繁に使用されていない) コード領域にメモリ リークが隠れている可能性があります。したがって、アプリケーションのこの部分が後でアクティブになると、問題になる可能性があります。

すべてのコードのリークを確実にテストするには、FastMM4 をユニット テスト ( DUnit を使用)で使用して、できるだけ多くのコード パスを実行できるようにします。ユニット テスト コードのカバレッジは、たとえば、このオープン ソースの Delphi ツールや、最近オープン ソースになったDiscoverを使用して測定できます。

また、トランク バージョン (9.4.0) の DUnit は、すべてのテスト ケースに対して自動メモリ リーク検出 (FastMM4 に基づく) をサポートします。

于 2011-04-14T19:37:49.293 に答える
1

デバッガーについて考える価値はありますか? あなたがそれらを使用していないことを理解しました。また、メモリリークの問題もありました。私はそれについて推測していませんでした。今、リークの「ガーディアン」を使用してください-私にとっては、それはデリーカーになりました。そして、あなたはあなたを喜ばせるようなものを見ることができます。

于 2011-11-22T19:09:29.600 に答える