相关文章推荐
豪情万千的手链  ·  MySQL之——GROUP ...·  10 月前    · 

Ce navigateur n’est plus pris en charge.

Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.

Télécharger Microsoft Edge Plus d’informations sur Internet Explorer et Microsoft Edge
public:
 static long GetTotalMemory(bool forceFullCollection);
public static long GetTotalMemory (bool forceFullCollection);
static member GetTotalMemory : bool -> int64
Public Shared Function GetTotalMemory (forceFullCollection As Boolean) As Long

Paramètres

true pour indiquer que cette méthode peut attendre le garbage collection avant de retourner une réponse ; sinon, false .

Retours

Exemples

L’exemple suivant montre comment utiliser la GetTotalMemory méthode pour obtenir et afficher le nombre d’octets actuellement alloués dans la mémoire managée.

using namespace System; const long maxGarbage = 1000; ref class MyGCCollectClass public: void MakeSomeGarbage() Version^ vt; for ( int i = 0; i < maxGarbage; i++ ) // Create objects and release them to fill up memory // with unused objects. vt = gcnew Version; int main() MyGCCollectClass^ myGCCol = gcnew MyGCCollectClass; // Determine the maximum number of generations the system // garbage collector currently supports. Console::WriteLine( "The highest generation is {0}", GC::MaxGeneration ); myGCCol->MakeSomeGarbage(); // Determine which generation myGCCol object is stored in. Console::WriteLine( "Generation: {0}", GC::GetGeneration( myGCCol ) ); // Determine the best available approximation of the number // of bytes currently allocated in managed memory. Console::WriteLine( "Total Memory: {0}", GC::GetTotalMemory( false ) ); // Perform a collection of generation 0 only. GC::Collect( 0 ); // Determine which generation myGCCol object is stored in. Console::WriteLine( "Generation: {0}", GC::GetGeneration( myGCCol ) ); Console::WriteLine( "Total Memory: {0}", GC::GetTotalMemory( false ) ); // Perform a collection of all generations up to and including 2. GC::Collect( 2 ); // Determine which generation myGCCol object is stored in. Console::WriteLine( "Generation: {0}", GC::GetGeneration( myGCCol ) ); Console::WriteLine( "Total Memory: {0}", GC::GetTotalMemory( false ) ); using System; namespace GCCollectIntExample class MyGCCollectClass private const long maxGarbage = 1000; static void Main() MyGCCollectClass myGCCol = new MyGCCollectClass(); // Determine the maximum number of generations the system // garbage collector currently supports. Console.WriteLine("The highest generation is {0}", GC.MaxGeneration); myGCCol.MakeSomeGarbage(); // Determine which generation myGCCol object is stored in. Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol)); // Determine the best available approximation of the number // of bytes currently allocated in managed memory. Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false)); // Perform a collection of generation 0 only. GC.Collect(0); // Determine which generation myGCCol object is stored in. Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol)); Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false)); // Perform a collection of all generations up to and including 2. GC.Collect(2); // Determine which generation myGCCol object is stored in. Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol)); Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false)); Console.Read(); 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(); open System let maxGarbage = 1000 type MyGCCollectClass() = member _.MakeSomeGarbage() = for _ = 1 to maxGarbage do // Create objects and release them to fill up memory with unused objects. Version() |> ignore [<EntryPoint>] let main _ = let myGCCol = MyGCCollectClass() // Determine the maximum number of generations the system // garbage collector currently supports. printfn $"The highest generation is {GC.MaxGeneration}" myGCCol.MakeSomeGarbage() // Determine which generation myGCCol object is stored in. printfn $"Generation: {GC.GetGeneration myGCCol}" // Determine the best available approximation of the number // of bytes currently allocated in managed memory. printfn $"Total Memory: {GC.GetTotalMemory false}" // Perform a collection of generation 0 only. GC.Collect 0 // Determine which generation myGCCol object is stored in. printfn $"Generation: {GC.GetGeneration myGCCol}" printfn $"Total Memory: {GC.GetTotalMemory false}" // Perform a collection of all generations up to and including 2. GC.Collect 2 // Determine which generation myGCCol object is stored in. printfn $"Generation: {GC.GetGeneration myGCCol}" printfn $"Total Memory: {GC.GetTotalMemory false}" Namespace GCCollectInt_Example Class MyGCCollectClass Private maxGarbage As Long = 10000 Public Shared Sub Main() Dim myGCCol As New MyGCCollectClass 'Determine the maximum number of generations the system 'garbage collector currently supports. Console.WriteLine("The highest generation is {0}", GC.MaxGeneration) myGCCol.MakeSomeGarbage() 'Determine which generation myGCCol object is stored in. Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol)) 'Determine the best available approximation of the number 'of bytes currently allocated in managed memory. Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(False)) 'Perform a collection of generation 0 only. GC.Collect(0) 'Determine which generation myGCCol object is stored in. Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol)) Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(False)) 'Perform a collection of all generations up to and including 2. GC.Collect(2) 'Determine which generation myGCCol object is stored in. Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol)) Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(False)) Console.Read() End Sub 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

Remarques

Si le forceFullCollection paramètre est true , cette méthode attend un court intervalle avant de retourner pendant que le système collecte la mémoire et finalise les objets. La durée de l’intervalle est une limite spécifiée en interne, déterminée par le nombre de cycles de garbage collection terminés et la modification de la quantité de mémoire récupérée entre les cycles. Le récupérateur de mémoire ne garantit pas que toute la mémoire inaccessible est collectée.