LINUX.ORG.RU

История изменений

Исправление baka-kun, (текущая версия) :

Виртуальная память - древняя, и повсеместно применяемая технология…

Давай ты не будешь путать виртуальную память и оверкоммит?

Линукс со включенным оверкоммитом позволяет раздать вызвавшим malloc() приложениям больше, чем имеется в наличии виртуальной памяти (физической+своп). И тогда ядро убьёт случайное приложение при oom.

Системы без оверкоммита либо просто не дадут распределить памяти больше, чем виртуальная+резерв, вернув NULL на malloc(), либо увеличат количество виртуальной, автоматически расширив своп.

Профиты есть у обоих подходов: первый удобнее для запуска быдлокода, аллокейтящего 100500 блоков, в которых не нуждается и никогда не использует, второй существенно более предсказуем, и не тормозит неожиданно исполнение кода при первом использовании блока, когда у нас каждый такт на счету, а только при распределении памяти, когда мы этого ожидаем.

Исправление baka-kun, :

Виртуальная память - древняя, и повсеместно применяемая технология…

Давай ты не будешь путать виртуальную память и оверкоммит?

Линукс со включенным оверкоммитом позволяет раздать вызвавшим malloc() приложениям больше, чем имеется в наличии виртуальной памяти (физической+своп). И тогда ядро убьёт случайное приложение при oom.

Системы без оверкоммита либо просто не дадут распределить памяти больше, чем виртуальная+резерв, вернув NULL на malloc(), либо увеличат количество виртуальной, автоматически расширив своп.

Профиты есть у обоих подходов: первый удобнее для запуска быдлокода, аллокейтящего 100500 блоков, в которых не нуждается, второй существенно более предсказуем, и не тормозит неожиданно исполнение кода при первом использовании блока, когда у нас каждый такт на счету, а только при распределении памяти, когда мы этого ожидаем.

Исходная версия baka-kun, :

Виртуальная память - древняя, и повсеместно применяемая технология…

Давай ты не будешь путать виртуальную память и оверкоммит?

Линукс со включенным оверкоммитом позволяет раздать вызвавшим malloc() приложениям больше, чем имеется в наличии виртуальной памяти (физической+своп). И тогда ядро убьёт случайное приложение при oom.

Системы без oom либо просто не дадут распределить памяти больше, чем виртуальная+резерв, вернув NULL на malloc(), либо увеличат количество виртуальной, автоматически расширив своп.

Профиты есть у обоих подходов: первый удобнее для запуска быдлокода, аллокейтящего 100500 блоков, в которых не нуждается, второй существенно более предсказуем, и не тормозит неожиданно исполнение кода при первом использовании блока, когда у нас каждый такт на счету, а только при распределении памяти, когда мы этого ожидаем.