2012-04-03 3 views
6

私は現在、C#とSharpDXを使用してWindows 8のメトロゲームに取り組んでいます。プロジェクトはうまくいっていますが、最近はメモリリークを追跡する必要があり、どこから始めたらいいかわかりません。管理対象のWin8メトロアプリでメモリリークを検出していますか?

Visual Studio 11の内蔵メモリプロファイラは、メトロアプリケーションでは機能しませんが、WinDBGはメトロアプリケーションに接続できないようです(間違って使用していない限り)。メトロ用の.NET 4.5で管理された割り当てを調べる方法についての情報を見つける。

誰もこの経験がありますか?探し始めるのに良い場所はありますか?メトロアプリでメモリリークを検出するのに役立つツールは、誰でも成功していますか?

+0

これにはまだ時間がかかりません。 WinRT自体にメモリリークがあり、RTMより前に修正されることは間違いありません。あなたは、一時的な問題を回避するために多大な時間を費やすつもりです。それまでにもツールサポートが必要です。 –

+1

これはアプリの検証ツールで実行する方がよいでしょう。あなたがSlimDXを使用するアプリを入手できる確率は、スリムでなければなりません。 –

+0

@HansPassant - 私は同意します。 SharpDXがWinRTプロファイルのみを使用しない限り、公開される可能性はほとんどありません。 SharpDXのプロジェクトページを見ると、「メトロスタイル」という言葉を使ってWinRTプロファイルをサポートしていると信じることができます.Microsoft独自の製品でも特定のデザインスタイルを意味します。もちろん、2012年3月30日現在、SharpDXはWindows 8 CPをサポートしていません。 –

答えて

2

実際にWinDbgを使用できるように見えますが、侵入モードでは機能していませんでした。私のせい。

1

私は、少なくとも今のところ、メモリリークはMetroやSharpDXに起因しないと仮定します。その後、 Memory Leaks C#

あなたは上記のリンク/検索クエリから収集されたもののチェックリストを通過すると、移動:

このチェックアウト(または単に「C#のメモリリーク」のためにSOを検索します。) SharpDX/Metroに関連するコードをチェックする。最高のガイドラインは、私が若かったときの私のお母さんから来たものです。作業が終わったらオブジェクトを処分し、DB、ファイル、またはメモリストリームを必要以上に開いたままにしないでください。これは多くの人々のメモリリークの問題の原因です、私が含まれています。

+0

私は通常の容疑者(ストリーム、IDisposables、イベント)と時間を過ごしてきましたが、私は現在、割り当てられているものを洞察できるツールや機能を探しています。管理された割り当てのリストを取得できるだけでも、真の問題領域を見つける上で大きな助けになります。 –

-1

これは、http://msdn.microsoft.com/en-us/magazine/jj721593.aspxを使用することをお勧めします。メモリリークについては多くの説明があります。

+0

単にリンクを投稿するのではなく、その記事で説明したテクニックのハイライトを指摘してください。 – Tuxdude

関連する問題