Программа выдает out of memory

Эта статья поможет вам устранить ошибки нехватки памяти в ASP.NET.

Исходная версия продукта: ASP.NET
Исходный номер базы знаний: 2020006

Симптомы

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

Прежде чем мы рассмотрим сведения об OutOfMemoryException устранении неполадок, важно понять, что вызывает эту проблему. В отличие от того, что считают многие разработчики, установленный объем ОЗУ не влияет на возможность OutOfMemoryException . 32-разрядная операционная система может использовать 4 ГБ виртуального адресного пространства независимо от объема физической памяти, установленной в поле. Из этого 2 ГБ зарезервировано для операционной системы (память в режиме ядра), а 2 ГБ — для процессов в пользовательском режиме. 2 ГБ памяти в режиме ядра распределяются между всеми процессами, но каждый процесс получает собственное 2 ГБ адресного пространства в пользовательском режиме. Предполагается, что вы не работаете с включенным параметром /3gb .

How to Fix Google Chrome Ran Out Of Memory Aw Snap Error

Когда приложению требуется использовать память, оно резервирует фрагмент виртуального адресного пространства, а затем сохраняет память из этого блока. Это именно то, что платформа .NET Framework сборщик мусора (GC), когда ему требуется память для увеличения управляемых куч.

Если сборщику мусора требуется новый сегмент для кучи небольшого объекта (где находятся объекты размером менее 85 КБ), выделено 64 МБ. Если для кучи большого объекта требуется новый сегмент, выделено 16 МБ. Эти большие выделения должны быть выполнены из смежных блоков адресного пространства размером 2 ГБ, с которой должен работать процесс. Если операционная система не может выполнить запрос сборочного мусора для непрерывного блока памяти, System.OutOfMemoryException возникает OOM.

32-разрядный процесс, выполняемый в 64-разрядной операционной системе, может обрабатывать 4 ГБ памяти в пользовательском режиме, а 64-разрядный процесс, выполняемый в 64-разрядной операционной системе, может обрабатывать 8 ТБ памяти в пользовательском режиме, поэтому ООМ в 64-разрядной операционной системе, скорее всего, не будет. ООМ можно использовать в 32-разрядном процессе, работающем в 64-разрядной операционной системе, но обычно это происходит только при использовании около 3 ГБ частных байтов.

Существует две причины, по которым может возникнуть условие OOM.

  1. Процесс использует большой объем памяти (обычно более 800 МБ в 32-разрядной среде).)
  2. Виртуальное адресное пространство является фрагментированным, что снижает вероятность успешного большого непрерывного выделения.

Можно также увидеть условие OOM из-за сочетания 1 и 2. Дополнительные сведения см. в разделе «Устранение неполадок System.OutOfMemoryExceptions в ASP.NET».

При возникновении ООМ можно заметить один или несколько из следующих симптомов:

Fix out of Error Memory Error in Windows 10

  • Приложение аварийно завершает работу. Дополнительные сведения см. в статье «Who is this OutOfMemory» (Кто этот outOfMemory) и почему он вызывает сбой процесса, когда у меня осталось много памяти?.
  • В приложении может возникнуть большой объем памяти, как указано диспетчером задач или Монитор производительности.
  • Обработка запросов может занять много времени. В службах IIS (IIS) 7 для устранения неполадок с длительными запросами можно использовать функцию устранения неполадок с неудачными запросами с помощью трассировки в IIS 7 .
  • Пользователи могут сообщить об ошибке в приложении из-за OOM.
Читайте также:
Какой командой в программе gns3 можно русифицировать интерфейс

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

В следующей информации описаны распространенные причины условий OOM и способы их устранения.

Объединение строк

Строки в управляемом приложении (приложение, написанное с помощью платформа .NET Framework) являются неизменяемыми. При присвоении строке нового значения создается копия существующей строки. Новое значение присваивается новой строке. Обычно это не приводит к проблемам.

Но если сцепляется большое количество строк, это приводит к выделению строки, которое может реализовать разработчик. Кроме того, это может привести к росту памяти и условию OOM.

Чтобы избежать использования OOM из-за объединения строк, убедитесь, что вы используете StringBuilder класс. Дополнительные сведения см. в статье «Повышение производительности объединения строк в Visual C#».

Фрагментация в управляемой куче

Сборщик мусора (GC) в управляемом приложении сжимая кучи, чтобы уменьшить объем фрагментации. Однако можно закрепить объекты в управляемом приложении. Закрепленные объекты нельзя перемещать во время сжатия кучи. Это приведет к изменению адреса, по которому находится объект.

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

Ошибка «Out of memory» при запуске игр и программ: Mortal Kombat, Minecraft, Google Chrome, Utorrent и др.

img-Oshibka-pamyati.png

В сегодняшней заметке хочу остановиться на одной довольно коварной ошибке («Out of memory. »), которая иногда возникает при запуске программ и игр (лично я чаще всего с этим сталкивался при попытке запустить: Mortal Kombat, Minecraft, Google Chrome, Utorrent и др.).

Вообще, данная ошибка говорит о том, что Windows не может выделить для конкретного приложения нужный ему объем памяти . Например, это часто бывает, когда свободного объема ОЗУ слишком мало, а приложению требуется значительно больше.

Впрочем, причина ошибки может быть и в некорректной работе самого ПО. (и тогда будет не важно, сколько у вас свободной ОЗУ).

Можно ли с этим что-то сделать?

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

img-Out-of-Memory.-Primer-oshibki-opisanie-mozhet-neskolko-otlichatsya.png

Out of Memory. Пример ошибки (описание может несколько отличаться)

Рекомендации

Первые действия

  1. Начну с банального : перезагрузите ПК; после закройте все «лишние» приложения, которые в данный момент не нужны ( прим. : часто в автозагрузке находятся десятки программ: плееры, редакторы, торренты и т.д.);
  2. Проверьте требования игры (приложения) : сколько ОЗУ требуется? Если в миним. сист. требованиях указано 4 ГБ, а у вас ПК с 2 ГБ — то проблема очевидна! В этом случае можно попробовать закрыть всё «что можно», увел. файл подкачки (об этом ниже), установить др. версию Windows (миним. сборку);

img-Teh.-trebovaniya-k-odnoy-iz-kompyuternyih-igr.png

Тех. требования к одной из компьютерных игр

img-Nastroyki-grafiki-dlya-WOW-Legion.png

Настройки графики для WOW Legion (кликабельно)

img-Zakryivaem-chast-vkladok-Chrome.png

Закрываем часть вкладок — Chrome

Места стало совсем мало.

Места стало совсем мало.

Расширение файла подкачки

Файл подкачки — это файл на сист. разделе диска, который ОС Windows использует, когда ей не хватает ОЗУ (т.е. если у вас 4 ГБ памяти, а программе нужно 8 ГБ — то Windows «подсунет» ей 4 ГБ реальных, и 4 ГБ с диска. Таким образом ошибка не появиться. // Это грубое объяснение, на самом деле все сложнее. ).

Читайте также:
Алгоритм составления индивидуальной программы профилактики стоматологических заболеваний у детей

В общем, для настройки файла подкачки требуется:

  1. открыть свойства системы (Win+R, и команда sysdm.cpl);
  2. перейти во вкладку «Дополнительно / Быстродействие» ;
  3. затем перейти в раздел «Дополнительно / Виртуальная память» — нажать по кнопке «Изменить» ;

img-Virtualnaya-pamyat-svoystva-Windows.png

Виртуальная память — свойства Windows

Проверка (диагностика) ОЗУ

В некоторых случаях ошибка «Out of memory» может быть связана с тех. неисправностью самой плашки ОЗУ. Чтобы исключить эту проблему — рекомендовал бы провести небольшое тестирование плашек, благо, что на это потребуется 3-5 мин. времени (и инструмент проверки есть в самой ОС Windows). О том, как его запустить — см. ссылочку ниже.

Проверка работы приложения с др. версией ОС Windows

Причиной появл. данной ошибки нередко также бывает наличие сист. ошибок в ОС Windows (особенно, при использовании не офиц. дистрибутивов от «народных умельцев», где нередко отключена половина служб).

В этом плане стоило бы проверить работу «проблемного» приложения при запуске в другой ОС Windows — для этого даже не обязательно переустанавливать текущую версию Windows — можно воспользоваться ОС, запускаемой с LiveCD диска.

Подборка LiveCD накопителе доступна по ссылке ниже.

Апгрейд ПК/ноутбука: увел. ОЗУ

Если все предыдущее не дело результатов — было бы неплохо для диагностики добавить еще одну плашку ОЗУ, и проверить, как ПК будет работать с большим кол-вом памяти.

Дешевые плашки можно найти в китайских онлайн-магазинах (если есть знакомый товарищ — можно попросить у него бесплатно ).

Пример добавления плашки ОЗУ показан в одной из моих предыдущих заметок. Если не знаете расшифровку основных параметров плашки (а именно это и нужно, чтобы правильно подобрать новую) — см. это.

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

Источник: ocomp.info

Ошибка Out of memory — как исправить

Многие пользователи ПК во время работы с какой-либо программой могут столкнуться с «вылетом» указанной программы, и появившимся сообщением «Out of memory». Возникшая проблема может иметь множество причин, начиная от банального недостатка памяти на пользовательском ПК, и заканчивая некорректной работой с памятью какой-либо программы.

Ошибка out of memory

Причины появления дисфункции

Сообщение «Out of memory» (в переводе дословно «вне памяти», или «недостаточно памяти») обычно возникает при недостатке памяти на пользовательском компьютере. В частности же, в появлении данной ошибки «виновен» следующий набор факторов:

  • Недостаток памяти RAM на вашем ПК (рабочей памяти, планки которой установлены на материнской плате вашего компьютера). Если на вашем компьютере установлен всего 1 гигабайт памяти, вы будете встречаться с описываемой ошибкой довольно часто. Нормальным же ныне считается наличие на компьютере 4 гигабайт памяти и выше;
  • Недостаток места на жёстком диске.

Когда вашему компьютеру не хватает физической R.A.M. памяти, он заимствует часть места на жёстком диске, и создаёт так называемую «виртуальную память». Система временно хранит в такой виртуальной памяти ту часть данных, которая не помещается в памяти обычной. Такие данные обычно хранятся в файле «pagefile.sys», размер которого может увеличиваться или уменьшаться в зависимости от специфики работы вашей ОС. Если на диске будет недостаточно места, файл «pagefile.sys» не сможет расти, и пользователь получит рассматриваемую ошибку.

Читайте также:
Активная ячейка в программе excel это ячейка для записи команд

Планка памяти и датчик

  • При одновременном запуске на ПК большого количества программ, каждая из которых бронирует часть памяти ПК под свои задачи;
  • При запуск большого количества вкладок браузера. Веб-навигаторы уровня «Firefox» или «Google Chrome» способны занимать от 500 мегабайт до 1 гигабайта памяти под свой функционал, при этом число открытых вкладок и соответствующей обслуживающей памяти может быть ограничено системой. Специалисты Майрософт называют такую проблему «the desktop heap limitation» — «ограничение кучи рабочего стола»);
  • Некорректная работа с памятью ряда программ (наиболее часто это игровые программы);
  • Не оптимальный размер файла подкачки, с которым работает система.

Как исправить ошибку «Out of memory»

Для решения указанной проблемы рекомендую сделать следующее:

Много открытых вкладок

  1. Перезагрузите ваш ПК, и запустите требуемую программу вновь. Возможно, что проблема имеет случайный характер, и более повторяться не будет;
  2. Перед запуском нужной программы закройте другие ненужные программы (браузер, музыкальный или видео плеер, текстовый или графический редактор, мессенджер и так далее);
  3. Если проблема возникает во время серфинга в сети, закройте всё множество вкладок вашего браузера (при наличии), оставив лишь одну или две.

Альтернативным вариантом решения проблемы является установка соответствующего фикса от Майкрософт. Или использование расширений или дополнений для браузера уровня «The Great Suspender» для «Google Chrome», хорошо работающего с ненужными вкладками браузера.

Планка памяти

  • Добавьте оперативной памяти на ваш ПК. Если у вас на компьютере установлено 1-2 гигабайта памяти, будет оптимальным довести её объём до 4 гигабайт (а для 64-битных Виндовс 7, 8 и 10 версии рекомендую 8 и более гигабайт);
  • Убедитесь, что на вашем жёстком диске (или SSD) достаточно свободного места. При необходимости, освободите диск от ненужных файлов;
  • Используйте инструмент командной строки BCDEdit для изменения параметров загрузки системы. Если у вас на ПК установлена Виндовс 7 и более, запустите командную строку от имени администратора на Виндовс 7 и Виндовс 10, и в ней наберите:

bcdedit/set IncreaseUserVa 3072

И нажмите на ввод, и перезагрузите ваш ПК. Функционал данной команды позволяет выделить пользовательским приложениям 3 гигабайта оперативной памяти для работы. В некоторых системах этого может быть слишком много, потому если после ввода данной команды система начала чаще сбоить, то введите в командной строке от имени администратора:

bcdedit /set IncreaseUserVa 2560 — что позволит задействовать 2,5 гигабайта вместо ранее забронированных 3.

Если ситуацию этим исправить не удалось, верните настройки на состояние по умолчанию:

bcdedit /deletevalue IncreaseUserVa

    Увеличьте объём файла подкачки. Нажмите кнопку «Пуск», в строке поиска введите sysdm.cpl и нажмите ввод. В открывшемся окне настроек системы выберите «Дополнительно» — «Быстродействие» — «Параметры» — «Дополнительно» — «Виртуальная память» — «Изменить». Снимите галочку с опции автоматического размера, поставьте галочку на «Указать размер», и поставьте исходный размер в 8192, и максимальный в 8192. Затем выберите «Задать»;

Окно виртуальной памяти

Установите нужный размер файла подкачки

Заключение

Ошибка «Out of memory» может иметь множество причин, связанных как с физическим недостатком памяти на ПК, так и другими детерминантами, изложенными мной выше. Для решения проблемы советую закрыть ненужные программы (вкладки браузера) на вашем компьютере (тем самым разгрузив его память), а самым эффективным инструментом является установка дополнительной планки памяти на ПК, что в большинстве случаев поможет избавиться от ошибки на вашем компьютере.

Источник: sdelaicomp.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru