является

елей отладки я написал этот небольшой статический метод:

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, а также то, что показывает диспетчер задач. Для конкретного примера, который я сейчас запускаю, вот цифры:

Диагностические инструменты: ~ 250 МБДиспетчер задач: ~ 120 МБVirtualMemorySize64: ~ 1100 МБ

Почему существуют такие большие различия и как правильно отслеживать использование памяти внутри самого приложения?

Ответы на вопрос(1)

Ваш ответ на вопрос