Мой предыдущий проект был встроенным приложением со встроенным веб-сервером для платформы ARM SAM9x.Он имеет кучу всего 64 КБ и не имеет консоли / дисплея или файловой системы, поэтому нет способа просто printf () выдать ошибку stderr или записать ее в файл.Хотя он должен работать 7/24, он не должен останавливаться с ошибкой «недостаточно памяти», он должен работать без ошибок.Если это началось однажды, это никогда не остановится.Недостаточно памяти - это неустранимая ошибка, это полный сбой системы.
Итак, я решил не использовать new .Я использовал массивы объектов: кольцевые буферы, пулы фиксированного размера и т. Д. - и это просто работает.Java (и C # и т. Д.) Делают нас не правыми, эти современные языки говорят, что память - это большой океан, из которого любой может окунуться.Да, это правда, если у вас есть много, но цена высока, как вы упоминали в этом посте.
Попробуйте!Используйте как можно меньше new (и, конечно, malloc () ).Хороший побочный эффект: вам не нужно использовать delete (и free () ), проблем с утечкой памяти не будет.