|
|
@@ -175,6 +175,22 @@ TEST(Benchmark, EraseMany) {
|
|
|
timer.elapsed();
|
|
|
}
|
|
|
|
|
|
+TEST(Benchmark, EraseManyMulti) {
|
|
|
+ entt::registry registry;
|
|
|
+ std::vector<entt::entity> entities(1000000);
|
|
|
+ auto view = registry.view<position>();
|
|
|
+
|
|
|
+ std::cout << "Erasing 1000000 components from their entities at once" << std::endl;
|
|
|
+
|
|
|
+ registry.create(entities.begin(), entities.end());
|
|
|
+ registry.insert<position>(entities.begin(), entities.end());
|
|
|
+ registry.insert<velocity>(entities.begin(), entities.end());
|
|
|
+
|
|
|
+ timer timer;
|
|
|
+ registry.erase<position, velocity>(view.begin(), view.end());
|
|
|
+ timer.elapsed();
|
|
|
+}
|
|
|
+
|
|
|
TEST(Benchmark, Remove) {
|
|
|
entt::registry registry;
|
|
|
std::vector<entt::entity> entities(1000000);
|
|
|
@@ -209,6 +225,22 @@ TEST(Benchmark, RemoveMany) {
|
|
|
timer.elapsed();
|
|
|
}
|
|
|
|
|
|
+TEST(Benchmark, RemoveManyMulti) {
|
|
|
+ entt::registry registry;
|
|
|
+ std::vector<entt::entity> entities(1000000);
|
|
|
+ auto view = registry.view<position>();
|
|
|
+
|
|
|
+ std::cout << "Removing 1000000 components from their entities at once" << std::endl;
|
|
|
+
|
|
|
+ registry.create(entities.begin(), entities.end());
|
|
|
+ registry.insert<position>(entities.begin(), entities.end());
|
|
|
+ registry.insert<velocity>(entities.begin(), entities.end());
|
|
|
+
|
|
|
+ timer timer;
|
|
|
+ registry.remove<position, velocity>(view.begin(), view.end());
|
|
|
+ timer.elapsed();
|
|
|
+}
|
|
|
+
|
|
|
TEST(Benchmark, Clear) {
|
|
|
entt::registry registry;
|
|
|
std::vector<entt::entity> entities(1000000);
|
|
|
@@ -223,6 +255,21 @@ TEST(Benchmark, Clear) {
|
|
|
timer.elapsed();
|
|
|
}
|
|
|
|
|
|
+TEST(Benchmark, ClearMulti) {
|
|
|
+ entt::registry registry;
|
|
|
+ std::vector<entt::entity> entities(1000000);
|
|
|
+
|
|
|
+ std::cout << "Clearing 1000000 components from their entities" << std::endl;
|
|
|
+
|
|
|
+ registry.create(entities.begin(), entities.end());
|
|
|
+ registry.insert<position>(entities.begin(), entities.end());
|
|
|
+ registry.insert<velocity>(entities.begin(), entities.end());
|
|
|
+
|
|
|
+ timer timer;
|
|
|
+ registry.clear<position, velocity>();
|
|
|
+ timer.elapsed();
|
|
|
+}
|
|
|
+
|
|
|
TEST(Benchmark, ClearStable) {
|
|
|
entt::registry registry;
|
|
|
std::vector<entt::entity> entities(1000000);
|