Надежный способ измерения использования оперативной памяти настольного приложения - PullRequest
2 голосов
/ 07 марта 2019

Я работаю над автоматизированной системой тестирования (написанной на C #) для приложения на работе, и мне очень трудно измерить пиковое использование оперативной памяти, в котором оно нуждается, например, при загрузке определенных файлов (использование памяти обычно намного выше во время файлазагрузка).

Сначала я попытался использовать Process.PeakWorkingSet64, и он работал довольно хорошо на машинах, которые использовались в то время, пока система тестирования не была развернута на большем количестве машин и некоторых виртуальных машин.
На некоторых из этих машин PeakWorkingSet64 был намного выше, чем на других (например, 180 МБ против 420 МБ).

Я пробовал другие значения Process, а также пытался использовать PerformanceCounter, но я не знаю другой метрики, которая дает мне пиковое значение (я действительно хочу пика, а не текущее состояние).

Я не совсем понимаю, почему значение PeakWorkingSet64 в некоторых системах намного выше.Я всегда использую одно и то же программное обеспечение с одинаковыми рабочими нагрузками на этих машинах.Поэтому, если у меня есть программное обеспечение, которое выделяет 1 ГБ данных в ОЗУ, я также ожидаю, что каждая система, на которой она работает, сообщает о максимальном использовании памяти около 1 ГБ.

Есть ли здесь что-то важное, чего мне не хватает?
Есть ли какие-либо подсказки, что я могу сделать, чтобы надежно измерить использование памяти из системы тестирования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...