LINUX.ORG.RU

Свободный объем heap-ы бесконечен. Можешь смело на это закладываться.

anonymous
()
Ответ на: комментарий от parser

Потому что, помимо самого буффера, в куче расположены другие буферы и служебные данные. Причем и то, и другое подвержено затиранию. :((

Переполнение в куче -- это не потому, что она мала, а потому, то разные данные близко друг к другу.

А сама куча не то чтобы бесконечна, просто Linux (а равно и любая другая система с виртуальной памятью, хоть solaris хоть винды) будет выделять память под кучу пока она не кончится (а потом прибьет процесс, который попросит еще памяти при ее отсутствии).

Если программа очень до памяти жадная, возможно, стОит проверить, есть ли память в наличии (скажем для выбора между быстрым и экомонмын алгоритмами) путем чтения /proc (точно файл не помню, sorry, мой Linux остался дома :(( ), но все равно нет гарантии, что какой-нибудь умник не сделает

swapoff -a & startkde & mysqld & find / &

(или не убьет все вышеперечисленное, пока Ваша программа, как дура, экономит каждый байт).

lodin ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.