The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Сообщения [Сортировка по времени | RSS]


131. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  –2 +/
Сообщение от Alexeyemail (??), 06-Авг-19, 21:07 
Это проблема не только на уровне ОС, она присуща почти всем программам. Ни кто из программистов не усложняет код для проверки свободной памяти.
Про BSD писали, ага видали, как зацикливается сборка пакетов сжирая память, благо падения ядра не наблюдается. Количество памяти значение не имеет.
Стоит менять подход к программированию.
Ответить | Правка | Наверх | Cообщить модератору

139. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  +/
Сообщение от qwerty123 (??), 06-Авг-19, 21:24 
>Ни кто из программистов не усложняет код для проверки свободной памяти

гы...

$ grep -r 'if.*alloc' /usr/src/sys/ | wc -l
    3132

вообще это норма проверять успешное выделение памяти.

if ((p = malloc(1)) == NULL) {
   что_то_тут_совсем_не_так();
   пока_пока();
}

Ответить | Правка | Наверх | Cообщить модератору

190. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  +1 +/
Сообщение от Аноним (190), 06-Авг-19, 22:58 
>if ((p = malloc(1)) == NULL) {

В Linux эта проверка бесполезна, вам вернут адрес и но вы упадете.

Ответить | Правка | Наверх | Cообщить модератору

322. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  +1 +/
Сообщение от anonymous (??), 07-Авг-19, 08:37 
Опасное заблуждение. Можно ограничить размер виртуальной памяти через ulimit -v и будет возвращать NULL даже при включенном оверкоммите.

>вы упадете

Проблема именно в том, что вместо падения приложения вся система встаёт. Слишком много времени уходит, прежде чем наконец-то начинает работать OOM-killer.

Ответить | Правка | Наверх | Cообщить модератору

195. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  +1 +/
Сообщение от анонн (ok), 06-Авг-19, 23:06 
>>Ни кто из программистов не усложняет код для проверки свободной памяти
> гы...
> $ grep -r 'if.*alloc' /usr/src/sys/ | wc -l
>     3132
> вообще это норма проверять успешное выделение памяти.
> if ((p = malloc(1)) == NULL) {
>    что_то_тут_совсем_не_так();
>    пока_пока();
> }

"Ваш новый стандарт!" же:

https://bugzilla.mozilla.org/show_bug.cgi?id=335951
> Lots of missing checks for out-of-memory.
> 5. On Linux, desktop boxes are usually configured to "overcommit" memory, i.e. app never sees NULL from malloc. Kernel just kills the "worst" process when it gets REALLY tight on memory.

))

Ответить | Правка | К родителю #139 | Наверх | Cообщить модератору

270. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  +/
Сообщение от Anonymoustus (ok), 07-Авг-19, 03:14 

Opened:    14 years ago
Updated:    7 years ago

Прэлэстно.

Ответить | Правка | Наверх | Cообщить модератору

236. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  +/
Сообщение от Аноним (224), 07-Авг-19, 01:23 
А на винде другие программы с другими исходниками, да?
Ответить | Правка | К родителю #131 | Наверх | Cообщить модератору

275. "Linux ядро не может мягко обрабатывать ситуации с нехваткой ..."  +/
Сообщение от Alexeyemail (??), 07-Авг-19, 03:36 
Стоит подойти к пределу выделяемой Windows виртуальной памяти и посмотреть реакцию? Программа запрашивает выделение памяти и получает положительный ответ, она не понимает заканчивается память или нет, это работа менеджера памяти. Тут и нет взаимодействия для остановки процесса и принятия иного решения.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру