Например, играть в beatsaber с утяжелителями на руках. Или "раздать всем ниткам (threads) по гигабайту стека по умолчанию". Или восхищение профессором экономики, что в экономике ни в зуб ногой.
А чем плохо раздать потокам по гектару? Это же виртуальная память, хоть объешься. Или это заметание багов под ковёр - так бы бесконечная рекурсия бомбанулась на тысячном шаге, а этак - лишь на миллионном, или на OOM всей системы?
2) откачиваются страницы по 4К. Если мы раздадим 1Г в страничках по 4К, мы создадим 256К записей о страницах, а это, считая по 16 байт на запись (я точно не знаю сколько байт на запись, но 16 выглядит разумным числом) мегабайт памяти только под записи о страницах. Снова, для 16 потоков это 16М байт, которые должны лежать в памяти (откачивать нельзя) и ничего не делать.
3) AXD 301, проект коммутатора, после которого Эрланг стал заметной фигурой среди ЯП. В нём сперва хотели использовать подход "процесс на соединение", но выяснилось, что размер данных процесса не позволяет уместить в памяти нужное количество процессов. И это для очень легких процессов Эрланга. Поэтому был создан gen_server и тп.
Comments 6
Reply
Например, играть в beatsaber с утяжелителями на руках. Или "раздать всем ниткам (threads) по гигабайту стека по умолчанию". Или восхищение профессором экономики, что в экономике ни в зуб ногой.
Вот "восхищение профессором" меня и сподобило.
Reply
А чем плохо раздать потокам по гектару? Это же виртуальная память, хоть объешься.
Или это заметание багов под ковёр - так бы бесконечная рекурсия бомбанулась на тысячном шаге, а этак - лишь на миллионном, или на OOM всей системы?
Reply
https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt
2) откачиваются страницы по 4К. Если мы раздадим 1Г в страничках по 4К, мы создадим 256К записей о страницах, а это, считая по 16 байт на запись (я точно не знаю сколько байт на запись, но 16 выглядит разумным числом) мегабайт памяти только под записи о страницах. Снова, для 16 потоков это 16М байт, которые должны лежать в памяти (откачивать нельзя) и ничего не делать.
3) AXD 301, проект коммутатора, после которого Эрланг стал заметной фигурой среди ЯП. В нём сперва хотели использовать подход "процесс на соединение", но выяснилось, что размер данных процесса не позволяет уместить в памяти нужное количество процессов. И это для очень легких процессов Эрланга. Поэтому был создан gen_server и тп.
Как можно всего этого не знать?
Reply
Leave a comment