C
n'est pas java
où la taille du tas est fixée au démarrage.
Le tas et la pile d'un C
l'application compilée partage le même espace de mémoire virtuelle et s'ajuste dynamiquement.
La taille de cet espace dépend si vous compilez un binaire 32 bits ou 64 bits, et aussi si votre noyau est un 32 bits ou un 64 bits (sur le matériel SPARC, c'est toujours 64 bits).
Si vous n'avez pas assez de RAM et que vous voulez que Solaris accepte de toute façon des réservations de mémoire volumineuses, de la même manière que Linux sur la mémoire, vous pouvez simplement ajouter suffisamment d'échange pour que la réservation soit sauvegardée par le stockage réel.
Si pour une raison quelconque, vous n'êtes pas satisfait de l'allocateur de mémoire Solaris libc, vous pouvez évaluer les alternatives groupées comme libumem
, mtmalloc
ou le tiers hoard
. Voir http://www.oracle. com/technetwork/articles/servers-storage-dev/mem-alloc-1557798.html
pour plus de détails.