ICorProfilerInfo2::GetGenerationBounds, méthodeICorProfilerInfo2::GetGenerationBounds Method

Obtient les régions de la mémoire, qui sont des segments du tas, composant les différentes générations de garbage collection.Gets the memory regions, which are segments of the heap, that make up the various garbage collection generations.

SyntaxeSyntax

HRESULT GetGenerationBounds(  
    [in]  ULONG cObjectRanges,  
    [out] ULONG *pcObjectRanges,  
    [out, size_is(cObjectRanges), length_is(*pcObjectRanges)] COR_PRF_GC_GENERATION_RANGE ranges[]);  

ParamètresParameters

cObjectRanges
[in] Nombre d'éléments alloués par l'appelant pour le tableau ranges.[in] The number of elements allocated by the caller for the ranges array.

pcObjectRanges
[out] Pointeur vers un entier qui spécifie le nombre total de plages, dont une partie ou la totalité sera retournée dans le tableau ranges.[out] A pointer to an integer that specifies the total number of ranges, some or all of which will be returned in the ranges array.

ranges
[out] Un tableau de COR_PRF_GC_GENERATION_RANGE structures, chacun d’eux décrit une plage (autrement dit, le bloc) de mémoire dans la génération qui subit le garbage collection.[out] An array of COR_PRF_GC_GENERATION_RANGE structures, each of which describes a range (that is, block) of memory within the generation that is undergoing garbage collection.

NotesRemarks

La méthode GetGenerationBounds peut être appelée à partir de tout rappel de profileur, à condition que le garbage collection ne soit pas en cours d'exécution.The GetGenerationBounds method can be called from any profiler callback, provided that garbage collection is not in progress.

La plupart des décalages de générations ont lieu pendant les opérations de garbage collection.Most shifting of generations takes place during garbage collections. Les générations peuvent devenir plus volumineuses entre les collections, mais elles ne se déplacent généralement pas.Generations might grow between collections but generally do not move around. Par conséquent, les endroits les plus intéressants pour appeler GetGenerationBounds sont dans ICorProfilerCallback2::GarbageCollectionStarted et ICorProfilerCallback2::GarbageCollectionFinished.Therefore, the most interesting places to call GetGenerationBounds are in ICorProfilerCallback2::GarbageCollectionStarted and ICorProfilerCallback2::GarbageCollectionFinished.

Pendant le démarrage du programme, certains objets sont alloués par le Common Language Runtime (CLR) lui-même, en général dans les générations 3 et 0.During program startup, some objects are allocated by the common language runtime (CLR) itself, generally in generations 3 and 0. Ainsi, quand le code managé commence à s'exécuter, ces générations contiennent déjà des objets.Thus, by the time managed code starts executing, these generations will already contain objects. Normalement, les générations 1 et 2 sont vides, à l'exception des objets factices qui sont générés par le garbage collector.Generations 1 and 2 will normally be empty, except for dummy objects that are generated by the garbage collector. (La taille des objets factices est de 12 octets dans les implémentations 32 bits du CLR ; elle est plus importante dans les implémentations 64 bits.) Vous verrez peut-être également des plages de génération 2 qui sont contenues dans les modules générés par le générateur d'images natives (NGen.exe).(The size of dummy objects is 12 bytes in 32-bit implementations of the CLR; the size is larger in 64-bit implementations.) You might also see generation 2 ranges that are inside modules produced by the Native Image Generator (NGen.exe). Dans ce cas, les objets dans la génération 2 sont objets figés, qui sont alloués quand NGen.exe s’exécute, plutôt que par le garbage collector.In this case, the objects in generation 2 are frozen objects, which are allocated when NGen.exe runs rather than by the garbage collector.

Cette fonction utilise des mémoires tampons allouées par l'appelant.This function uses caller-allocated buffers.

Configuration requiseRequirements

Plateformes : Consultez Configuration requise.Platforms: See System Requirements.

En-tête : CorProf.idl, CorProf.hHeader: CorProf.idl, CorProf.h

Bibliothèque : CorGuids.libLibrary: CorGuids.lib

Versions du .NET Framework : Disponible à partir de 2.0Available since 2.0.NET Framework Versions: Disponible à partir de 2.0Available since 2.0

Voir aussiSee also