Библиотека wxl для WinUI 3 представила кастомный аллокатор sta_memory_pool, который работает в 15–16 раз быстрее стандартной системной кучи. Решение опирается на строгую дисциплину однопоточного доступа, что позволяет отказаться от блокировок и атомарных операций, характерных для многопоточных сред.
Для определения класса размера аллокатор использует инструкцию lzcnt, вычисляющую индекс за один такт процессора. Запросы распределяются по таблице функций, что исключает ветвления на горячем пути. Система поддерживает 16 классов размеров для блоков от 8 байт до 32 КБ, используя 32-битные индексы для оптимизации.
Аллокатор применяет самоперестраивающиеся таблицы функций для выбора стратегии выделения памяти. В штатном режиме используется bump-аллокатор, сдвигающий курсор в памяти. При возврате блока в пул система переключается на использование списка свободных блоков, а при его исчерпании — автоматически возвращается к bump-аллокации.
Разработчики протестировали восемь вариантов реализации аллокатора, включая сценарии с чередованием операций и массовым выделением памяти. Самоадаптирующаяся архитектура показала наилучшие результаты при инициализации GUI-приложений, где требуется выполнение тысяч последовательных аллокаций при минимальном количестве освобождений.






