Что вы делаете, когда ваше приложение начинает исчерпывать память? - PullRequest
1 голос
/ 19 сентября 2011

У меня есть графическое приложение C ++, которое выполняет тяжелые вычисления на моделях.Есть утечка или две , которые я проследил до CG и / или моей видеокарты ATI (я уверен на 100% !!).У моей машины есть 16 ГБ оперативной памяти, и когда я использовал 4,49 ГБ ОЗУ (ВСЕГО использования системы, приложение использует только ~ 1,9 ГБ), vector.resize () начинает возвращать 0 новых элементов и не может изменять размер массива.,Почему так скоро?

Ответы [ 3 ]

3 голосов
/ 19 сентября 2011

(Windows Assumed)

32-разрядное приложение Windows ограничено до 2,0 ГБ памяти пользовательского режима (или 3,0 ГБ, если установлены определенные параметры времени загрузки).Когда ваше приложение израсходовало 1,9 ГБ памяти, колодец иссяк.

Ссылка: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#memory_limits

1 голос
/ 19 сентября 2011

Я изменил конфигурацию сборки на x64, и приложение работает нормально

0 голосов
/ 19 сентября 2011

Брось исключение! Лучше всего разыскать и устранить утечку, конечно, но когда тебе не хватает памяти: исключение!Чтобы быть более крутым, перезапустите собственное приложение в ответ.

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