linux-BR.org

Notícias de software livre e tecnologias

A operação de transformação será
Para cada um deles, compararemos o desempenho de std::vector::push_back, nonstd::vector::push_back e nonstd::vector::push_back_unchecked[8].↩︎
A razão para incluir std::vector::push_back nos benchmarks é verificar se a implementação de nonstd::vector::push_back não está fazendo algo estúpido e, portanto, dando uma vantagem injusta a nonstd::vector::push_back_unchecked.No entanto, quando comparei essa implementação com o std::vector da libstdc++, descobri que seu desempenho era até 4x pior do que o std::vector real.evitando alocações para pequenos vetores[1], tendo capacidade estática[2], integrando-se fortemente com o sistema operacional para realocações mais rápidas[3], ou otimizando elementos móveis com cópia bit a bit[4].Comparado aos resultados do Clang, há uma diferença um pouco maior entre usar std::vector e nonstd::vector, mas as diferenças ainda são pequenas.

Fonte: https://codingnest.com/the-little-things-the-missing-performance-in-std-vector/