Partage via


MemoryFailPoint(Int32) Constructeur

Définition

Initialise une nouvelle instance de la classe MemoryFailPoint, en spécifiant la quantité de mémoire requise pour réussir une exécution.

public:
 MemoryFailPoint(int sizeInMegabytes);
public MemoryFailPoint (int sizeInMegabytes);
[System.Security.SecurityCritical]
public MemoryFailPoint (int sizeInMegabytes);
new System.Runtime.MemoryFailPoint : int -> System.Runtime.MemoryFailPoint
[<System.Security.SecurityCritical>]
new System.Runtime.MemoryFailPoint : int -> System.Runtime.MemoryFailPoint
Public Sub New (sizeInMegabytes As Integer)

Paramètres

sizeInMegabytes
Int32

Taille de mémoire requise, en mégaoctets. Cette valeur doit être positive.

Attributs

Exceptions

La taille de mémoire spécifiée est négative ou 0.

Mémoire insuffisante pour commencer l’exécution du code protégé par la porte.

Exemples

L’exemple suivant montre comment déterminer la quantité de mémoire requise par une méthode lors de l’exécution. Cet exemple de code fait partie d’un exemple plus grand fourni pour la MemoryFailPoint classe .

private static int EstimateMemoryUsageInMB()
{
    int memUsageInMB = 0;

    long memBefore = GC.GetTotalMemory(true);
    int numGen0Collections = GC.CollectionCount(0);
    // Execute a test version of the method to estimate memory requirements.
    // This test method only exists to determine the memory requirements.
    ThreadMethod();
    // Includes garbage generated by the worker function.
    long memAfter = GC.GetTotalMemory(false);
    // If a garbage collection occurs during the measuring, you might need a greater memory requirement.
    Console.WriteLine("Did a GC occur while measuring?  {0}", numGen0Collections == GC.CollectionCount(0));
    // Set the field used as the parameter for the MemoryFailPoint constructor.
    long memUsage = (memAfter - memBefore);
    if (memUsage < 0)
    {
        Console.WriteLine("GC's occurred while measuring memory usage.  Try measuring again.");
        memUsage = 1 << 20;
    }

    // Round up to the nearest MB.
    memUsageInMB = (int)(1 + (memUsage >> 20));
    Console.WriteLine("Memory usage estimate: {0} bytes, rounded to {1} MB", memUsage, memUsageInMB);
    return memUsageInMB;
}

Remarques

La quantité de mémoire utilisée par votre application pour traiter un élément de travail peut être déterminée de manière empirique. Pour estimer la quantité de mémoire dont votre application a besoin pour traiter une demande, envisagez d’utiliser la GC.GetTotalMemory méthode pour déterminer la quantité de mémoire disponible avant et après l’appel de la méthode qui traite l’élément de travail. Consultez la MemoryFailPoint classe pour obtenir un exemple de code qui détermine dynamiquement la valeur du sizeInMegabytes paramètre.

S’applique à