https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96942
--- Comment #13 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Alexander Monakov from comment #9) > I think the rest of the slowdown can be attributed to m_b_r simply doing > more work internally compared to your bare-bones malloc allocator The malloc-based one only supports fundamental alignments and has a fixed upper limit, whereas std::m_b_r supports extended alignments and can grow beyond the initial capacity. If you don't need the additional features of std::m_b_r, then of course you can beat its performance.