MemoryFailPoint(Int32) Constructor
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Initialiseert een nieuw exemplaar van de MemoryFailPoint klasse, waarbij de hoeveelheid geheugen wordt opgegeven die nodig is voor een geslaagde uitvoering.
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)
Parameters
- sizeInMegabytes
- Int32
De vereiste geheugengrootte, in megabytes. Dit moet een positieve waarde zijn.
- Kenmerken
Uitzonderingen
De opgegeven geheugengrootte is negatief of 0.
Er is onvoldoende geheugen om te beginnen met het uitvoeren van de code die door de poort wordt beveiligd.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de hoeveelheid geheugen kunt bepalen die een methode nodig heeft bij het uitvoeren. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de MemoryFailPoint klasse.
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;
}
Opmerkingen
De hoeveelheid geheugen die door uw toepassing wordt gebruikt om een werkitem te verwerken, kan empirisch worden bepaald. Als u de hoeveelheid geheugen wilt schatten die uw toepassing nodig heeft om een aanvraag te verwerken, kunt u overwegen de GC.GetTotalMemory methode te gebruiken om de hoeveelheid geheugen te bepalen die beschikbaar is voor en na het aanroepen van de methode die het werkitem verwerkt. Zie de MemoryFailPoint klasse voor een codevoorbeeld dat dynamisch de waarde voor de sizeInMegabytes parameter bepaalt.