что бы иметь еще более быстрые аллокации и удаления элементов графа, немного потестил и всё вроде работает как и должно, но вот странная фигня, по какой-то причине перебор графа в глубину стал работать быстрее, для 1 млн вершин, на new я имел 44.7ms за перебор, а вот для mempool это 18.4ms, это как возможно такое?
Граф стал кешфрендли
локальность данных повысилась
Кешмисы снизились
для себя конечно прикольно эти пулы делать, но советую использовать уже существующие #include <memory_resource> или хотя бы посмотреть на них
ммм надо будет потрогать
Ух ты... И такое есть.
Пощупал, в целом на std::pmr::unsynchronized_pool_resource мой граф стал пушить быстрее, где-то на 35%-45%, чем мой написанный memory pool на коленке, но вот в реальном использовании, мой граф дёргает операцию удаления и она кидает free, здесь upr проигрывает уже моему mempool, мой может делать 5.6к/7к циклов, когда upr выходит в ~11к, на большом количестве операций, мой быстрее на 10%
попробуй options и другой доступный пул
Обсуждают сегодня