Где-нибудь можно глянуть размер стека ?
Винда 10, MinGW 8.1
И второй вопрос: а сколько памяти выделяется пользовательскому процессу при запуске ?
В 32-битной системе было деление 2/2 (ос/программа), но можно было сделать 1/3 (правда я не делал)
А как в 64-битной ?
Меня, собственно, интересует показать разницу в размерах локального и глобального массива.
Соответственно, такой же вопрос в Линуксе встанет.
Какой-то режим компиляции g++ должен быть про размер стека.
В студии было, я ставил.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали: LVV>Где-нибудь можно глянуть размер стека ?
В линухе ulimit -s
8Мб
В винде обычно 1Мб был размером по умолчанию.
Но можно при создании потока указать свой LVV>И второй вопрос: а сколько памяти выделяется пользовательскому процессу при запуске ? LVV>В 32-битной системе было деление 2/2 (ос/программа), но можно было сделать 1/3 (правда я не делал) LVV>А как в 64-битной ? https://learn.microsoft.com/en-us/windows/win32/memory/memory-limits-for-windows-releases LVV>Какой-то режим компиляции g++ должен быть про размер стека.
-mstack-size=bytes
Specify how many bytes of stack space will be requested for each GPU thread (wave-front). Beware that there may be many threads and limited memory available. The size of the stack
allocation may also have an impact on run-time performance. The default is 32KB when using OpenACC or OpenMP, and 1MB otherwise.
...
-fsplit-stack
Generate code to automatically split the stack before it overflows. The resulting program has a discontiguous stack which can only overflow if the program is unable to allocate any more
memory. This is most useful when running threaded programs, as it is no longer necessary to calculate a good stack size to use for each thread. This is currently only implemented for
the x86 targets running GNU/Linux.
LVV>Меня, собственно, интересует показать разницу в размерах локального и глобального массива.
Через jongjmp
LVV>И второй вопрос: а сколько памяти выделяется пользовательскому процессу при запуске ? LVV>В 32-битной системе было деление 2/2 (ос/программа), но можно было сделать 1/3 (правда я не делал)
Не памяти, а адресного пространства. Чему вы там детей учите?
LVV>А как в 64-битной ?
В x64 там какой-то мизер под адресное пространство ОС выделяется. Но даже если 1 к 1 ОС/юзер — не всё ли равно? 63 бита адреса хватит всем
LVV>Меня, собственно, интересует показать разницу в размерах локального и глобального массива.
Разницы в размерах локального и глобального массивов нет никакой. Не понятно, что вы собрались показывать.
Можно поставить вопрос так: какого размера допустимо создавать локальные и глобальные массивы. Для демонстрации эффектов можно при сборке приложухи явно задать дефолтный размер стека например в мегабайт.
LVV>>Где-нибудь можно глянуть размер стека ? _>В линухе ulimit -s _>8Мб
Спасибо _>В винде обычно 1Мб был размером по умолчанию.
Да, я опытным путем раскопал.
Глобальный — 1 гиг по умолчанию
А динамический — 64 гиг по умолчанию.
LVV>>И второй вопрос: а сколько памяти выделяется пользовательскому процессу при запуске ? LVV>>В 32-битной системе было деление 2/2 (ос/программа), но можно было сделать 1/3 (правда я не делал) LVV>>А как в 64-битной ? _>https://learn.microsoft.com/en-us/windows/win32/memory/memory-limits-for-windows-releases
Спасибо.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
П>Разницы в размерах локального и глобального массивов нет никакой. Не понятно, что вы собрались показывать. П>Можно поставить вопрос так: какого размера допустимо создавать локальные и глобальные массивы. Для демонстрации эффектов можно при сборке приложухи явно задать дефолтный размер стека например в мегабайт.
Ну, хорош придираться...
Я вот это имел ввиду: