Bagikan melalui


MemoryFailPoint(Int32) Konstruktor

Definisi

Menginisialisasi instans MemoryFailPoint baru kelas, menentukan jumlah memori yang diperlukan untuk keberhasilan eksekusi.

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)

Parameter

sizeInMegabytes
Int32

Ukuran memori yang diperlukan, dalam megabyte. Ini harus berupa nilai positif.

Atribut

Pengecualian

Ukuran memori yang ditentukan negatif atau 0.

Memori tidak mencukupi untuk memulai eksekusi kode yang dilindungi oleh gerbang.

Contoh

Contoh berikut menunjukkan cara menentukan jumlah memori yang diperlukan metode saat mengeksekusi. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk MemoryFailPoint kelas .

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

Keterangan

Jumlah memori yang digunakan oleh aplikasi Anda untuk memproses item kerja dapat ditentukan secara empirik. Untuk memperkirakan jumlah memori yang dibutuhkan aplikasi Anda untuk memproses permintaan, pertimbangkan untuk menggunakan GC.GetTotalMemory metode untuk menentukan jumlah memori yang tersedia sebelum dan sesudah memanggil metode yang memproses item kerja. MemoryFailPoint Lihat kelas untuk contoh kode yang secara dinamis menentukan nilai untuk sizeInMegabytes parameter .

Berlaku untuk