tgoop.com/lab_sborki/396
Last Update:
Это маленький шаг для человека, и огромный шаг для суверенности.
Попытался собрать пример, близкий к реальности: есть несколько аллокаций на старте + волнообразно добавляются/удаляются новые.
Получается достаточно плотно все забить. Сейчас для поиска подходящего блока не применяется никакой алгоритм, чтобы не бегать по итераторам постоянно. Всегда берется последний, но после каждой аллокации происходит пузырьковая сортировка [в данном случае чем проще, тем лучше] до первого свапа [так более пустые блоки постепенно съезжают в конец].
Объясню, что тут вообще происходит.
Вулкан кладет ответственность за управление ресурсами на плечи разработчика. Нужно самостоятельно выделять память, мапить ее и освобождать. Вместе со свободой и контролем это привносит кучу повторяющегося кода, что вытекает в необходимость наличия инструмента для управления всем этим добром.
К тому же имеется ряд хардварных ограничений, которые нужно учитывать. Например, максимальное количество аллокаций, из-за чего рекомендуется [самими хроносами] выделять крупные блоки памяти и использовать их кусочки для ресурсов.
До недавнего времени мы пользовались VMA, который отлично работает, но, увы, является C++ библиотекой, а это создает неудобства. Написанные на расте не так хороши в плане понятности и количества зависимостей.
Я решил написать свое, на расте.
BY Лаборатория • сборки
Share with your friend now:
tgoop.com/lab_sborki/396