MemoryFailPoint(Int32) Constructor

Definición

Inicializa una nueva instancia de la clase MemoryFailPoint, especificando la cantidad de memoria necesaria para una ejecución sin problemas.Initializes a new instance of the MemoryFailPoint class, specifying the amount of memory required for successful execution.

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)

Parámetros

sizeInMegabytes
Int32

Tamaño de memoria necesario, en megabytes.The required memory size, in megabytes. Este valor debe ser positivo.This must be a positive value.

Atributos

Excepciones

El tamaño de memoria especificado es un valor negativo.The specified memory size is negative.

No hay memoria suficiente para comenzar la ejecución del código protegido por la puerta.There is insufficient memory to begin execution of the code protected by the gate.

Ejemplos

En el ejemplo siguiente se muestra cómo determinar la cantidad de memoria que necesita un método cuando se ejecuta.The following example demonstrates how to determine the amount of memory a method requires when executing. Este ejemplo de código forma parte de un ejemplo más extenso proporcionado para la MemoryFailPoint clase.This code example is part of a larger example provided for the MemoryFailPoint class.

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;
}

Comentarios

La cantidad de memoria que usa la aplicación para procesar un elemento de trabajo se puede determinar empíricamente.The amount of memory used by your application to process a work item can be determined empirically. Para calcular la cantidad de memoria que necesita la aplicación para procesar una solicitud, considere la posibilidad de utilizar el GC.GetTotalMemory método para determinar la cantidad de memoria disponible antes y después de llamar al método que procesa el elemento de trabajo.To estimate the amount of memory your application needs to process a request, consider using the GC.GetTotalMemory method to determine the amount of memory available before and after calling the method that processes the work item. Vea la MemoryFailPoint clase para obtener un ejemplo de código que determina dinámicamente el valor del sizeInMegabytes parámetro.See the MemoryFailPoint class for a code example that dynamically determines the value for the sizeInMegabytes parameter.

Se aplica a