GC.Collect メソッド ()
すべてのジェネレーションのガベージ コレクションを強制的に実行します。
Overloads Public Shared Sub Collect()
[C#]
public static void Collect();
[C++]
public: static void Collect();
[JScript]
public static function Collect();
解説
このメソッドを使用して、アクセスできないすべてのメモリの収集を試みます。ただし、 Collect メソッドは、アクセスできないすべてのメモリが収集されることは保証していません。
メモリ内に保持された時間の長さにかかわらず、すべてのオブジェクトはコレクションの対象となります。ただし、マネージ コードで参照されるオブジェクトは収集されません。このメソッドを使用して、使用できる最大量のメモリの収集を強制的に試みます。
使用例
Imports System
Namespace GCCollect_Example
Class MyGCCollectClass
Private Const maxGarbage As Integer = 1000
Shared Sub Main()
'Put some objects in memory.
MyGCCollectClass.MakeSomeGarbage()
Console.WriteLine("Memory used before collection: {0}", GC.GetTotalMemory(False))
'Collect all generations of memory.
GC.Collect()
Console.WriteLine("Memory used after full collection: {0}", GC.GetTotalMemory(True))
End Sub
Shared Sub MakeSomeGarbage()
Dim vt As Version
Dim i As Integer
For i = 0 To maxGarbage - 1
'Create objects and release them to fill up memory
'with unused objects.
vt = New Version()
Next i
End Sub
End Class
End Namespace
[C#]
using System;
namespace GCCollectExample
{
class MyGCCollectClass
{
private const int maxGarbage = 1000;
static void Main()
{
// Put some objects in memory.
MyGCCollectClass.MakeSomeGarbage();
Console.WriteLine("Memory used before collection: {0}", GC.GetTotalMemory(false));
// Collect all generations of memory.
GC.Collect();
Console.WriteLine("Memory used after full collection: {0}", GC.GetTotalMemory(true));
}
static void MakeSomeGarbage()
{
Version vt;
for(int i = 0; i < maxGarbage; i++)
{
// Create objects and release them to fill up memory
// with unused objects.
vt = new Version();
}
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
const int maxGarbage = 1000;
void MakeSomeGarbage() {
Version* vt;
for (int i = 0; i < maxGarbage; i++) {
// Create objects and release them to fill up memory
// with unused objects.
vt = new Version();
}
}
int main() {
// Put some objects in memory.
MakeSomeGarbage();
Console::WriteLine(S"Memory used before collection: {0}", __box(GC::GetTotalMemory(false)));
// Collect all generations of memory.
GC::Collect();
Console::WriteLine(S"Memory used after full collection: {0}", __box(GC::GetTotalMemory(true)));
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET