является
елей отладки я написал этот небольшой статический метод:
public static long CheckMemory(long maxMemorySizeBytes)
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
var usedMemoryBytes = Process.GetCurrentProcess().VirtualMemorySize64;
if (usedMemoryBytes > maxMemorySizeBytes)
Debugger.Break();
return usedMemoryBytes;
}
По какой-то причинеVirtualMemorySize64
продолжает возвращать намного больше памяти, чем то, что показывает окно средств диагностики Visual Studio, а также то, что показывает диспетчер задач. Для конкретного примера, который я сейчас запускаю, вот цифры:
Почему существуют такие большие различия и как правильно отслеживать использование памяти внутри самого приложения?