Как симулировать недостаток памяти для приложения .net? - PullRequest
4 голосов
/ 11 декабря 2011

Ну, я должен отладить проблему выделения памяти. Приложение не хватает памяти с течением времени. Мне нужно смоделировать систему с низким объемом памяти для приложения Windows. Как способ быстрее воспроизвести проблему нехватки памяти.

PS: мое первоначальное исследование показало, что утечка памяти происходит, когда приложение выделяет неуправляемые ресурсы (Managed DX).

Ответы [ 4 ]

9 голосов
/ 11 декабря 2011

Напишите другую программу, которая выделяет всю память вашей системы:)

В качестве альтернативы, отладка в виртуальной машине с нехваткой памяти

1 голос
/ 11 декабря 2011
static volatile byte[] wasted; //volatile to avoid any compiler cleverness "saving" us!
static void Main(string[] args)
{
   wasted = new byte[1024 * 1024 * 1024];//waste a gig!
}

Может также стоить запустить Application Verifier в вашем приложении.

0 голосов
/ 11 декабря 2011

Если приложению не хватает памяти для доступа к неуправляемым ресурсам, это может быть утечка памяти.Запуск приложения в среде с нехваткой памяти напрямую не поможет вам диагностировать проблему, это произойдет быстрее.

Вам необходимо профилировать использование памяти приложением, чтобы определить, как выделяется память, инайти утечку.Обычные инструменты профилирования не помогут, потому что неуправляемый код не будет профилирован.Вам придется проявить творческий подход с помощью приложения для мониторинга памяти.

0 голосов
/ 11 декабря 2011

Кроме того, я бы предложил вам использовать профилировщик .NET, чтобы вы могли проверить, какой области вашей программы выделяется больше памяти.

...