MemoryFailPoint コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)



作業項目を処理するためにアプリケーションが使用するメモリ量は、経験的に決定できます。アプリケーションが要求を処理するために必要とするメモリ量を推定するには、GC.GetTotalMemory メソッドを使用して、作業項目を処理するメソッドの呼び出しの前後に利用できるメモリ量を判断してください。sizeInMegabytes パラメータの値を動的に決定するコード例については、MemoryFailPoint クラスのトピックを参照してください。

実行時にメソッドが必要とするメモリ量を判断する方法を次のコード例に示します。このコード例は、MemoryFailPoint クラスのトピックで取り上げているコード例の一部分です。
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; }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- MemoryFailPoint コンストラクタのページへのリンク