diff --git a/test/benchmark.cpp b/test/benchmark.cpp index 739f3f06e..63e2a0668 100644 --- a/test/benchmark.cpp +++ b/test/benchmark.cpp @@ -408,3 +408,52 @@ TEST(DefaultRegistry, IterateTenComponents10MOne) { timer.elapsed(); registry.reset(); } + +TEST(DefaultRegistry, SortSingle) { + using registry_type = entt::DefaultRegistry; + + registry_type registry; + std::vector entities{}; + + std::cout << "Sort 10000000 entities" << std::endl; + + for (uint64_t i = 0; i < 10000000L; i++) { + auto entity = registry.create(); + entities.push_back(entity); + registry.assign(entity, i, i); + } + + Timer timer; + + registry.sort([](const auto &lhs, const auto &rhs) { + return lhs.x < rhs.x && lhs.y < rhs.y; + }); + + timer.elapsed(); +} + +TEST(DefaultRegistry, SortMulti) { + using registry_type = entt::DefaultRegistry; + + registry_type registry; + std::vector entities{}; + + std::cout << "Sort 10000000 entities" << std::endl; + + for (uint64_t i = 0; i < 10000000L; i++) { + auto entity = registry.create(); + entities.push_back(entity); + registry.assign(entity, i, i); + registry.assign(entity, i, i); + } + + registry.sort([](const auto &lhs, const auto &rhs) { + return lhs.x < rhs.x && lhs.y < rhs.y; + }); + + Timer timer; + + registry.sort(); + + timer.elapsed(); +}