Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
GC.GetTotalMemory, méthode
Récupère le nombre d'octets qu'il est actuellement prévu d'allouer. Un paramètre indique si cette méthode peut attendre une courte période de temps avant de retourner une réponse, pour permettre au système d'effectuer un garbage collection et de finaliser les objets.
Assembly : mscorlib (dans mscorlib.dll)
Paramètres
- forceFullCollection
- Type : System.Boolean
true pour indiquer que cette méthode peut attendre le garbage collection avant de retourner une réponse ; sinon, false.
Valeur de retour
Type : System.Int64Nombre correspondant à la meilleure approximation possible du nombre d'octets actuellement alloués dans la mémoire managée.
Si le paramètre forceFullCollection a la valeur true, cette méthode attend une courte période de temps avant de retourner une réponse pendant que le système exécute un garbage collection 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 complétés et la variation de la quantité de mémoire récupérée entre les cycles. Le garbage collector ne garantit pas que l'intégralité de la mémoire inaccessible est collectée.
L'exemple suivant montre comment utiliser la méthode GetTotalMemory pour obtenir et afficher le nombre d'octets actuellement alloués dans la mémoire managée.
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(); } } } }
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.