Есть ли инструмент для проверки неиспользуемых битов в выделенных данных в C / C ++?
Мы можем использовать такой инструмент, когда пытаемся уменьшить потребление памяти в компиляторе DMD D, написанном на C ++. Подробнее см. эта почта.
Обновить: Похоже Массив хороший соперник, верно?
Прочитав разговор, я думаю, что первое, что вы должны сделать, это использовать массив, как вы предложили.
Затем, если вы видите, что какой-то конкретный тип выделяется много, вы можете посмотреть на это.
Спонтанно, хотя неиспользованные биты не кажутся мне критически важным для памяти в компиляторе, в построении AST должны быть более важные вещи и, прежде всего, оптимизация (ipo).
Кроме того, если вы найдете какой-либо тип, который действительно выигрывает в размере, переключаясь на тип с меньшим размером, обязательно сравните его с производительностью. Сравнительный анализ важен, поскольку, если один конкретный 4/8-байтовый тип обнаруживается достаточно, чтобы иметь значение, то вполне может иметь значение, что процессоры обычно медленнее при выполнении вычислений для типов, которые не имеют собственного размера слова,
увидеть: Производительность встроенных типов: char против short против int против float против double