C
не е java
където размерът на купчината е фиксиран при стартиране.
Купчината и стекът на C
компилираното приложение споделя една и съща виртуална памет и се настройва динамично.
Размерът на това пространство зависи от това дали компилирате 32-битов или 64-битов двоичен файл, както и от това дали ядрото ви е 32-битово или 64-битово (на SPARC хардуера винаги е 64-битово).
Ако нямате достатъчно RAM и искате Solaris така или иначе да приема големи резервации на памет, подобно на начина, по който Linux прехвърля паметта, можете просто да добавите достатъчно суап, за да може резервацията да бъде подкрепена от действително хранилище.
Ако по някаква причина не сте доволни от програмата за разпределяне на памет Solaris libc, можете да оцените включените алтернативи, като libumem
, mtmalloc
или третата страна hoard
. Вижте http://www.oracle. com/technetwork/articles/servers-storage-dev/mem-alloc-1557798.html
за подробности.