История изменений
Исправление baka-kun, (текущая версия) :
Виртуальная память - древняя, и повсеместно применяемая технология…
Давай ты не будешь путать виртуальную память и оверкоммит?
Линукс со включенным оверкоммитом позволяет раздать вызвавшим malloc() приложениям больше, чем имеется в наличии виртуальной памяти (физической+своп). И тогда ядро убьёт случайное приложение при oom.
Системы без оверкоммита либо просто не дадут распределить памяти больше, чем виртуальная+резерв, вернув NULL на malloc(), либо увеличат количество виртуальной, автоматически расширив своп.
Профиты есть у обоих подходов: первый удобнее для запуска быдлокода, аллокейтящего 100500 блоков, в которых не нуждается и никогда не использует, второй существенно более предсказуем, и не тормозит неожиданно исполнение кода при первом использовании блока, когда у нас каждый такт на счету, а только при распределении памяти, когда мы этого ожидаем.
Исправление baka-kun, :
Виртуальная память - древняя, и повсеместно применяемая технология…
Давай ты не будешь путать виртуальную память и оверкоммит?
Линукс со включенным оверкоммитом позволяет раздать вызвавшим malloc() приложениям больше, чем имеется в наличии виртуальной памяти (физической+своп). И тогда ядро убьёт случайное приложение при oom.
Системы без оверкоммита либо просто не дадут распределить памяти больше, чем виртуальная+резерв, вернув NULL на malloc(), либо увеличат количество виртуальной, автоматически расширив своп.
Профиты есть у обоих подходов: первый удобнее для запуска быдлокода, аллокейтящего 100500 блоков, в которых не нуждается, второй существенно более предсказуем, и не тормозит неожиданно исполнение кода при первом использовании блока, когда у нас каждый такт на счету, а только при распределении памяти, когда мы этого ожидаем.
Исходная версия baka-kun, :
Виртуальная память - древняя, и повсеместно применяемая технология…
Давай ты не будешь путать виртуальную память и оверкоммит?
Линукс со включенным оверкоммитом позволяет раздать вызвавшим malloc() приложениям больше, чем имеется в наличии виртуальной памяти (физической+своп). И тогда ядро убьёт случайное приложение при oom.
Системы без oom либо просто не дадут распределить памяти больше, чем виртуальная+резерв, вернув NULL на malloc(), либо увеличат количество виртуальной, автоматически расширив своп.
Профиты есть у обоих подходов: первый удобнее для запуска быдлокода, аллокейтящего 100500 блоков, в которых не нуждается, второй существенно более предсказуем, и не тормозит неожиданно исполнение кода при первом использовании блока, когда у нас каждый такт на счету, а только при распределении памяти, когда мы этого ожидаем.