C
não é java
onde o tamanho do heap é fixo na inicialização. O heap e a pilha de um
C
aplicativos compilados compartilham o mesmo espaço de memória virtual e se ajustam dinamicamente. O tamanho deste espaço depende se você está compilando um binário de 32 ou 64 bits, e também se seu kernel é de 32 ou 64 bits (em hardware SPARC, é sempre de 64 bits).
Se você não tiver RAM suficiente e quiser que o Solaris aceite grandes reservas de memória de qualquer maneira, de maneira semelhante ao Linux sobre a memória de confirmação, você pode apenas adicionar swap suficiente para que a reserva seja apoiada pelo armazenamento real.
Se, por algum motivo, você estiver insatisfeito com o alocador de memória libc do Solaris, poderá avaliar as alternativas empacotadas como
libumem
, mtmalloc
ou o terceiro hoard
. Consulte http://www.oracle. com/technetwork/articles/servers-storage-dev/mem-alloc-1557798.html
para detalhes.