2017-01-13 17 views
0

C#でスレッドのメモリ消費量をどのように測定しますか?スレッドのメモリ消費量を測定する

私が見ているシナリオは、プログラムがいくつかのハード検索の問題を解決しようとしていることです。スレッドの1つに解決策を探すためにスレッドを起動し、スレッドがしばらく実行されます。それとも、そのメモリの余裕を超えて実行され、したがって失敗する可能性があります。しかし、それを実装するには、(プロセス全体ではなく)スレッドがどれだけのメモリを使用しているかを知る必要があります。それを行う方法はありますか?

答えて

2

スレッドは共通のヒープを共有しますが、独自のスタックを持ちます。

特定のスレッドのメモリ消費量を取得しようとするよりも、Visual Studio Memory Profilerを使用してソリューションをプロファイリングする方が効果的です。また、Ants Memoryプロファイラを使用して、潜在的なメモリ問題を見つけることもできます。

アプリケーションで例外が発生しましたか?

+0

明らかに、メモリ消費量が多い理由はプログラムのバグではなく、問題を解決しようとする性質に内在しています。最もよく知られているアルゴリズムが小さな問題のあるインスタンスに対して大量のメモリを消費する場所を証明する定理。しかし、それを行う方法がない場合、方法はありません。たぶん私は代わりに別のプロセスを実行することを検討する必要があります。 – rwallace