#include #include #include #include #include #include #include #include #include constexpr int num_sprites = 5000; class TestSprite : public Drawable { public: TestSprite() : Drawable(0) { DrawableMgr::Register(this); } void Draw(Bitmap&) override {} }; static void BM_DrawSort(benchmark::State& state) { DrawableList list; DrawableMgr::SetLocalList(&list); std::vector> sprites; for (int i = 0; i < num_sprites; ++i) { sprites.push_back(std::make_unique()); } for (auto _: state) { list.Sort(); } } BENCHMARK(BM_DrawSort); static void BM_DrawSortLocality(benchmark::State& state) { DrawableList list; DrawableMgr::SetLocalList(&list); std::array sprites; for (auto _: state) { list.Sort(); } } BENCHMARK(BM_DrawSortLocality); BENCHMARK_MAIN();