Операционная система выделяет отдельный стек для каждого потока, но не

для каждой таски tokio, верно? Дефолтный размер стека в linux x64 – 8 мегабайт. То есть, если у меня 8-ядерный процессор, дефолтная многопоточная среда исполнения tokio выделит мне 8*8*1024*1024 = 67108864 байта стека суммарно.
Допустим, я пишу асинхронный игровой сервер, который должен одновременно обрабатывать тысячи соединений, и для каждого соединения создаю буфер чтения таким образом:
let buf = [0u8; 65536]; (я так понимаю, локальная память таким образом размещается на стеке)
Значит ли это, что 1024 соединения (67108864 / 65536 = 1024) автоматически крашнут мой сервер со stack overflow?
Как от этого лучше защититься? Выделять память на куче? Всё рассчитать и увеличить размер стэка? Читать данные буферами меньших размеров? Какой подход лучше?

4 ответов

6 просмотров

Так память под стек заранее выделяется же

У каждой таски заспавненной есть свой стек, если я правильно помню. А если ты футуры собираешь в какой-нибудь FuturesUnordered, то в стек не влезет, угу

lem0nify- Автор вопроса
Пух
У каждой таски заспавненной есть свой стек, если я...

Где можно уточнить, что у каждой таски свой стек? Звучит странно. 🤔

lem0nify
Где можно уточнить, что у каждой таски свой стек? ...

Ну я почему-то посчитал, что футура после tokio::spawn утаскивается в свой стек

Похожие вопросы

Обсуждают сегодня

а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Мне вот что интересно, кто на рфе стартовал/играл, что вы фармили, в каком виде контента он прямо хорош? Экспедиция? Вроде прямо на замазанных мапах рф сдувается
Владислав
20
Подскажите где можно прочитать про реализацию возможности писать человеку при подписке на телеграм канал от имени бота? Было бы не плохо если для Telegraf@3.38.0
Pan Lipton
10
Всем привет, может уже кто-то пытался выдернуть из api информацию о дате рождения пользователя Есть ли вообще такая возможность?
Artem Stormageddon
2
‌/r/pathofexile moderation changes top scoring links : pathofexile (RSS) Hi, everyone. On behalf of the subreddit mod team, I’m here to give you a few updates on the subreddi...
Esionru
3
Ребята, я за проф советом😅 По микросервисам. В монолите есть общие файлы для сервисов: фетчи, конфиги, либы, утилсы.. как при распиле правильно их поддерживать? Пока вариант д...
Александр Тарасюк
1
У меня вопрос к знающими, стоит ли вступать в гильдии в игре или лучше полная свобода?
Енот Полоскун
17
У вас бывает ощущение, что хочется потратить весь отпуск на то, чтоб только спать?
Николай
15
Как можно настроить фильтр в пое под себя?
Yarik yarik kyda ti lezesh
15
Кто нибудь поясните это всё таки вброс или да? Про санктум слышал на поедб вбросили, а по дурке откуда инфа и на сколько это вообще правда? Пахнет шизофренией какой-то ✅Divi...
Dmitry Ritter
9
Карта сайта