Итак, что я читаю, основываясь на вашем вопросе и ваших комментариях, так это то, что библиотека не на самом деле слишком велика.
Единственный инструмент, который вам нужен, чтобы определить это, это командная оболочкаили Проводник Windows.Посмотрите на размер файла.Он настолько велик, что вызывает реальные проблемы?(Недопустимое время загрузки, не помещается в памяти на целевой платформе, такого рода вещи)?
Если нет, то вам следует позаботиться о читабельности и удобстве сопровождения кода и больше ничего.И инструмент для , который - это ваши глаза.Прочитайте код и выполните необходимые действия, чтобы сделать его более читабельным, если это необходимо.
Если вы можете указать фактическую причину, по которой размер исполняемого файла является проблемой , отредактируйте его в своемвопрос, так как это важный контекст.
Однако, предполагая, что размер файла равен , на самом деле проблема:
Встроенные функции, как правило, не являются проблемой, потому что компилятор иникто другой не выбирает, какие функции встроены.Простая маркировка чего-либо inline
не соответствует действительному сгенерированному коду.Компилятор указывает, если он определит, что компромисс между большим кодом и меньшей косвенностью стоит того.Если функция вызывается часто, она не будет встроенной, потому что это сильно повлияет на размер кода, что ухудшит производительность.
Если вы обеспокоены тем, что встроенные функции вызывают раздувание кода, просто скомпилируйте с помощью «optimize»для размера "флаг.Затем компилятор ограничит встраивание в тех случаях, когда это не оказывает заметного влияния на размер исполняемого файла.
Чтобы выяснить, какие символы являются самыми большими, проанализируйте файл карты, как предложено @Suma.
Но на самом делеВы сказали это сами, когда упомянули «общеизвестную ошибку« оптимизация без профилирования ».
Самый первый акт профилирования, который вам нужно сделать, это спросить действительно ли размер исполняемого файла является проблемой ?В комментариях вы сказали, что у вас «есть чувство», которое в контексте профилирования бесполезно и может быть переведено как «нет, размер исполняемого файла не является проблемой».
Профиль.Соберите данные и определите проблемные места.Прежде чем беспокоиться о том, как уменьшить размер исполняемого файла, выясните, каков размер исполняемого файла, и определите, действительно ли это является проблемой.Вы еще этого не сделали.Вы прочитали в книге, что «раздувание кода - это проблема в C ++», и поэтому вы предполагаете, что раздувание кода - это проблема в вашей программе.но так ли это?Зачем?Как вы определяете, что это?