В чем преимущество небольшого стека потока? - PullRequest
1 голос
/ 07 января 2020

Я изучаю потоки POSIX и увидел, что есть способ изменить размер стека; Я все еще являюсь неспециалистом в общих операционных системах; так в чем же преимущество небольшого стека, буду ли я экономить память во время выполнения? введите во встроенных системах?

1 Ответ

2 голосов
/ 07 января 2020

в чем преимущество небольшого стека

Основным преимуществом является то, что вы можете создавать больше потоков.

В 32-разрядных ОС (адресное пространство 4 ГБ) ), используя стек 8 МБ, можно создать максимум 512 потоков. На самом деле виртуальный адрес будет исчерпан намного быстрее, поскольку ядро ​​обычно резервирует от 1/2 до 1/4 общего адресного пространства, а библиотеки кучи и разделяемые библиотеки больше фрагментируют доступное адресное пространство.

Если вы выполняются серверные процессы (например, поиск в Интернете), вы можете использовать модель «один поток на соединение», которая затем ограничивает количество одновременных соединений, которые вы можете обрабатывать на одном компьютере. Даже 10 лет go, 500 потоков было слишком мало по сравнению с тем, на что способен процессор.

Исчерпание адресного пространства меньше беспокоит 64-битные ОС.

In Кроме того, когда поток использует значительный объем стека, эта память «запирается».

Представьте, что у вас есть веб-сервер, который обрабатывает 1000 запросов в секунду. Если большинство запросов использует (скажем) 32 КБ стека, но случайный редкий запрос использует 2 МБ стека, и если запросы распределяются случайным образом по пулу потоков, в конечном итоге каждый поток будет использовать 2 МБ ОЗУ, и поэтому ваш процесс будет продолжаться использовать N * 2MiB ОЗУ, несмотря на то, что ему требуется всего лишь N * 32KiB в 99,99% случаев.

Вы можете избежать такого сокращения памяти, если вы заставите свои потоки использовать не более (скажем) 64KB стека.

Наличие этого дополнительного ОЗУ позволяет вам выполнять другие задачи на том же компьютере (то есть, сколько провайдеров облачных услуг могут продать свою «избыточную емкость» по очень низкой цене).

...