У меня есть игрушечный язык для компиляции в C++, который работает на MCU с 2 КБ оперативной памяти (у меня нет доступа к стандартной библиотеке C++ или boost и т. д.), чтобы сохранить единообразие, все мои объекты распределены в куче. Проблема в avr-gcc,
http://www.nongnu.org/avr-libc/user-manual/malloc.html
использует двухбайтовый заголовок для каждого объекта malloc, AFAIK, что означает, что возвращаемый объект функции, который не имеет состояния, потребляет 3 байта (1 байт для соответствия стандарту + 2 байта информации о malloc), для ints он потребляет 4 байта (2 байта информации + 2 byte для самого int) в значительной степени удваивает размеры всех моих объектов, поэтому простое включение / выключение светодиодного приложения потребляет 1 КБ оперативной памяти.
У меня уже есть собственная объектная система, которая переопределяет new/delete (в avr-gcc она не реализована). Поэтому я думаю, что, возможно, пользовательский распределитель будет потреблять меньше памяти и немного ускорять работу, поскольку он будет обслуживать запрос из фрагмента, который уже выделено. Существуют ли какие-либо реализации, которые будут работать в моем случае?