Как ограничить RAM для тестирования ситуаций с низкой памятью?

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

5 ответов


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

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


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

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

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


использовать объект задание или ulimit(1).


создайте виртуальную машину и установите ОЗУ на то, что вам нужно.

тот, который я использую, - это виртуальная коробка от SUN.

http://www.virtualbox.org/

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


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