2017-01-03 3 views
-3

私のレコードをエクスポートして、エクスポートされた要素をWindows 8 OSに配備しようとしました。タスクマネージャでメモリの詳細を見ることができます。しかし、この同じコードはWindows 2008のサーバーOSで使用しています。エクスポートされた要素を配置した後にメモリの違いはありません。以下のコードを使用してガベージコレクタをクリアすることができます。Windows 2008サーバーとWindows 8.1 OSのガベージコレクタのパフォーマンスに違いはありますか?

ExportedElement = null; 
GC.SuppressFinalize(obj); 

誰でもこれを知っている場合は、この変更の理由を教えてください。

+1

質問は無関係です。 .NETでは 'null'に設定するべきではなく、' SuppressFinalize'はガベージコレクタを呼び出すこととは関係ありません。あなたはあまりにも "助けて"しようとしています。ガベージコレクタにそのことをさせてください。 –

答えて

0

はい、さまざまなWindowsプラットフォームと.NET Frameworkのガベージコレクションの動作に違いがあります。

いいえ、GC.SuppressFinalize()は、オブジェクトの収集時にオブジェクトのファイナライザを呼び出さないようにCLRに通知します。このメソッドは、ガベージコレクションを強制したり、特定のオブジェクトが収集されることを防ぎません(または、「ガベージコレクタのクリア」を意味するもの)。

詳細については、私は、Microsoftのドキュメントを読むことをお勧めします。 https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110).aspx

関連する問題