Как ограничить ОЗУ для тестирования ситуаций с нехваткой памяти? - PullRequest
6 голосов
/ 18 февраля 2010

Я пытаюсь воспроизвести ошибку, которая появляется, когда пользователь использует кучу оперативной памяти. Как лучше всего ограничить доступную оперативную память, которую может использовать компьютер, или заполнить большую ее часть? Я бы предпочел сделать это без физического удаления памяти и без запуска нескольких произвольных программ, интенсивно использующих память (например, Photoshop, Quake и т. Д.).

Ответы [ 5 ]

11 голосов
/ 18 февраля 2010

Я копирую мой ответ из аналогичного вопроса:

Если вы тестируете нативное / неуправляемое / C ++ приложение, вы можете использовать AppVerifier и его настройку имитации низкого ресурса, которая будет использовать внедрение ошибок для симуляции ошибок в распределении памяти (среди многих других). Это также очень полезно для поиска множества других тонких проблем, которые часто приводят к сбоям приложений.

Вы также можете использовать take.exe, который входит в состав Microsoft Windows SDK для Windows 7 и .NET Framework 3.5 с пакетом обновления 1 , чтобы легко использовать много памяти, дискового пространства, процессорного времени, файл подкачки или пул ядра и посмотрите, как ваше приложение справляется с нехваткой доступных ресурсов. (Происходит сбой? Как влияет производительность? И т. Д.)

10 голосов
/ 18 февраля 2010

Используйте виртуальную машину и установите для нее ограничения ресурсов для эмуляции требуемых условий.

VMWare является одним из лидеров в этой области, и у них есть бесплатный vmware player , которыйпозволяет вам сделать это.

3 голосов
/ 18 февраля 2010

Используйте либо объект задания , либо ulimit(1).

1 голос
/ 18 февраля 2010

Создайте виртуальную машину и установите оперативную память на то, что вам нужно.

Я использую Virtual Box от SUN.

http://www.virtualbox.org/

Легко настроить.

0 голосов
/ 18 февраля 2010

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

...