Мне нужно реорганизовать мой проект, чтобы сделать его неуязвимым к исключению OutOfMemory
.Как имитировать исключение OutOfMemory
Есть огромные коллекции, используемые в моем проекте и изменение одного параметра я могу сделать мою программу чтобы быть более точным или использовать меньше памяти ...
ОК, это фон. То, что я хотел бы сделать, - запустить подпрограммы в цикле:
- Запустите подпрограммы с параметром по умолчанию.
- Исследуйте ошибку
OutOfMemory
, измените параметр и попробуйте запустить его снова. - Сделайте 2-й пункт до тех пор, пока параметры не позволят запускать подпрограммы без исключения исключения (обычно требуется только одно изменение).
Теперь, я бы хотел протестировать его. Я знаю, что я могу выбросить исключение OutOfMemory
самостоятельно, но я хотел бы имитировать реальную ситуацию.
Так что главный вопрос:
Есть ли способ установить какое-то предел памяти для моей программы, после достижения которой OutOfMemory
будет сгенерировано исключение автоматически?
Например, я хотел бы установить ограничение, скажем, 400 МБ памяти для всей моей программы, чтобы имитировать ситуацию, когда в системе имеется такой объем памяти.
Можно ли это сделать?
Ну, мне даже не нужно сравнивать его с системной памятью, мне просто нужно знать, сколько MB ОЗУ используется моей программой. Мне нужно прочитать документ для GC ... спасибо! – Gacek
ОК ... ну, так как вы искали OutOfMemoryException, я предположил, что вы хотите в какой-то момент выбежать в целях настройки для максимальной производительности. Но эй, если методы GC работают на вас, круто! – Dave
Ну, я думаю, я могу использовать методы GC и самостоятельно выбросить исключение, достигнув определенного предела. Может быть, какой-то фоновой работник ... Мне нужно проверить, будет ли это работать. – Gacek