In https://github.com/LLNL/axom/pull/1469, we added some initial benchmarking of axom::Array w.r.t. std::vector (see also #287),
and observed that axom::Array was slower for push_back and emplace_back operations on native types.
Initial profiling using hpctoolkit did not reveal any low-hanging fruit.
Our assumption is that the performance might be due to function call overhead, e.g. for functions that are not inlined.
@publixsubfan noticed that axom::Array::emplace() calls the virtual function Array::updateNumElements(), and axom::Array has several other virtual functions.
In https://github.com/LLNL/axom/pull/1469, we added some initial benchmarking of
axom::Array
w.r.t.std::vector
(see also #287), and observed thataxom::Array
was slower forpush_back
andemplace_back
operations on native types.Initial profiling using
hpctoolkit
did not reveal any low-hanging fruit. Our assumption is that the performance might be due to function call overhead, e.g. for functions that are not inlined.@publixsubfan noticed that
axom::Array::emplace()
calls thevirtual
functionArray::updateNumElements()
, andaxom::Array
has several other virtual functions.