Ver Fonte

test: more bench to stress a little an upcoming feature

Michele Caini há 3 anos atrás
pai
commit
69d95ba759
1 ficheiros alterados com 62 adições e 0 exclusões
  1. 62 0
      test/benchmark/benchmark.cpp

+ 62 - 0
test/benchmark/benchmark.cpp

@@ -363,6 +363,68 @@ TEST(Benchmark, DestroyManyMulti) {
     });
 }
 
+TEST(Benchmark, GetFromRegistry) {
+    entt::registry registry;
+    std::vector<entt::entity> entities(1000000);
+
+    registry.create(entities.begin(), entities.end());
+    registry.insert<position>(entities.begin(), entities.end());
+
+    generic_with([&]() {
+        for(auto entity: entities) {
+            registry.get<position>(entity).x = 0u;
+        }
+    });
+}
+
+TEST(Benchmark, GetFromRegistryMulti) {
+    entt::registry registry;
+    std::vector<entt::entity> entities(1000000);
+
+    registry.create(entities.begin(), entities.end());
+    registry.insert<position>(entities.begin(), entities.end());
+    registry.insert<velocity>(entities.begin(), entities.end());
+
+    generic_with([&]() {
+        for(auto entity: entities) {
+            registry.get<position>(entity).x = 0u;
+            registry.get<velocity>(entity).y = 0u;
+        }
+    });
+}
+
+TEST(Benchmark, GetFromView) {
+    entt::registry registry;
+    std::vector<entt::entity> entities(1000000);
+    auto view = registry.view<position>();
+
+    registry.create(entities.begin(), entities.end());
+    registry.insert<position>(entities.begin(), entities.end());
+
+    generic_with([&]() {
+        for(auto entity: entities) {
+            view.get<position>(entity).x = 0u;
+        }
+    });
+}
+
+TEST(Benchmark, GetFromViewMulti) {
+    entt::registry registry;
+    std::vector<entt::entity> entities(1000000);
+    auto view = registry.view<position, velocity>();
+
+    registry.create(entities.begin(), entities.end());
+    registry.insert<position>(entities.begin(), entities.end());
+    registry.insert<velocity>(entities.begin(), entities.end());
+
+    generic_with([&]() {
+        for(auto entity: entities) {
+            view.get<position>(entity).x = 0u;
+            view.get<velocity>(entity).y = 0u;
+        }
+    });
+}
+
 TEST(Benchmark, IterateSingleComponent1M) {
     entt::registry registry;