Den 03-10-2017 kl. 00:02 skrev Benedek Thaler via Boost:
Re-run results in very similar results. I think the numbers are convincing in favor of devector::unsafe_push_back.
There is not a huge difference between devector and vector. If I take my test where I try to confuse the branch predictor and alter just 1 flag: "favor small code" instead of "favor fast code", then I get: 32 bit: 10E3 63.8728 42.2238 10E4 62.2564 40.5588 10E5 62.0731 40.2956 10E6 62.2532 40.2451 10E7 62.3553 43.5931 64 bit: 10E3 29.2422 24.6654 10E4 28.3354 24.246 10E5 28.2262 23.7662 10E6 28.2777 23.8788 10E7 28.3777 23.8641 I think that is a good example of how the compiler can play tricks on you. And this is major reason we should always strive after providing abstractions with zero overhead. kind regards Thorsten