Я пытаюсь получить достоверную информацию о том, когда моему приложению C # (Windows XP) не хватит памяти. Я провел некоторые исследования и тесты на своей машине и выбрал самые надежные счетчики perfmon :
Memory.Pages Output/sec
Memory.Available Bytes
Я использую пороги и оператор AND, и это работает довольно хорошо, но на клиентском компьютере (также Windows XP) оба счетчика бесполезны. Объем доступной памяти не опускается ниже 1 ГБ, а объем вывода страниц равен нулю. После прочтения некоторых журналов я все еще не вижу никакого полезного счетчика.
Счетчики, такие как выделенная память, дают правильное значение, но программе не хватает памяти (с подкачкой, снижающей производительность) после того, как она перевалила за 50% -60% от 5 ГБ.
Есть ли альтернативы? Я не хотел бы, чтобы меня пытались выделить память и перехватывать исключения OutOfMemory во время вычислений.