Цитата(BSVi @ Jul 20 2011, 10:04)

Вот интересно мнение народа, начиная с какого объема памяти целесообразно использовать кучу в эмбеддед-прложениях? К примеру, выделяются мелкие строки по 20-50 символов, буфера по 256 байт, ну и мелкие структурки в десятки байт. Начиная с какого объема удается избежать фатальной фрагментации? Как вообще это рассчитывается?
Вооще объем выделяемого не влияет на решение об использовании динамического выделения памяти.
Главное это качество движка того самого выделения, частоты выделения и соотношения резерва к общему объему выделяемого.
ИМХО но нужно иметь резерв раз в 10 больше того что в пределе может быть выделено.
Если частота выделения очень большая, например при парсинге пакетов по Ethernet, то стандартными движками выделения пользоваться уже нельзя, применяют выделенные движки с градациями сегментов фиксированных размеров.
Для парсинга конфигурационных структур, интерпретаторов и всяких скриптов динамическое выделение идет автоматом вне зависимости от размера элементов и там уже надо думать только о качестве движка динамического выделения.
Как-то было обсуждение и решили что наилучший движок по устойчивости к фрагментации будет: Two Levels Segregate Fit memory allocator (TLSF)