Boost.PropertyTree в основном не быстро или легкий анализатор.
Он фокусируется на предоставлении удобства и функциональности на высоком уровне, поэтому он не построен, чтобы быть эффективным, я думаю.
Вы можете увидеть this thread в списке рассылки boost для аналогичного вопроса.
Я хотел бы предложить, что альтернатива Boost.PropertyTree может быть:
- SAX парсер - это другой подход для XML разбора. Это похоже на парсер DOM; он анализирует XML-узлы один за другим. Обычно «распределение памяти для всего файла при запуске» происходит в парсере DOM, но это не происходит в синтаксических анализаторах SAX.
- a распределитель-настраиваемый парсер + пользовательский пул памяти - вы можете настроить распределитель такого синтаксического анализа, чтобы указать стабильный пул памяти. Он может быть просто большим буфером предварительно выделенной памяти, пулом, поддерживающим фрагментацию, или даже файлом с отображением памяти и т. Д.