Наскільки великий стек у Linux?

admin | 4 Квітня, 2025


Стандартний розмір стека Linux на потік становить 10 МБ, де as, у Windows за замовчуванням 1 МБ. Це змушує сервер у Linux виділяти надмірну кількість непотрібної пам’яті через кількість потоків, створених сервером. Наведена вище команда встановить розмір стека потоку за замовчуванням на 1 МБ замість початкових 10 МБ.

Ви можете переглянути обмеження розміру стека в оболонці Linux за допомогою ulimit -s або в R system("ulimit -s") . Це зазвичай 8192 кб (8 мегабайт) на ОС Linux.

Використання команди ulimit у Linux/Unix: The Команда ulimit -s відображає поточний розмір стека в Linux/Unix. Використання функції _alloca в Windows: ви можете використовувати функцію _alloca, щоб розподілити пам’ять у стеку та перевірити розмір стеку, що залишився.

Стек містить усі локальні змінні та дані, проміжне сховище для регістрів і параметрів функцій. Типовий стек – це область пам'яті комп'ютера з фіксованим походженням і змінним розміром. Спочатку розмір стека дорівнює нулю.

Розмір стосу ниток:

Упорядникприбл. Обмеження стекаприбл. Розмір масиву (подвійний)
Linux icc, ifort4 Мб700 х 700
Linux pgcc, pgf908 Мб1000 x 1000
Linux gcc, gfortran2 Мб500 х 500

1MB Це залежить від вашої операційної системи. У Windows типовий максимальний розмір стека становить 1 МБ, тоді як це так 8 Мб на типовому сучасному Linux, хоча ці значення можна регулювати різними способами.

Щоб 64 були жорстким обмеженням, потрібне певне хакерство бітів, оскільки знадобиться лише шість бітів. Оскільки ми вже знаємо, що обмеження становить 255, воно, очевидно, зберігається як байт без знаку, тому вибір обмеження кількості предметів до 64 є стилістичним або ігровим рішенням, а не програмним рішенням.