From 2722ed46c3fbc5759446dba2767bfabab2f321e9 Mon Sep 17 00:00:00 2001 From: srikappa-amzn Date: Fri, 11 Jun 2021 10:03:20 -0700 Subject: [PATCH 1/7] Reset prefab system in all prefab benchmarks --- .../Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp | 4 ++++ .../Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp index 5713b226b2..19180431a2 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp @@ -41,6 +41,10 @@ namespace Benchmark { newInstances[instanceCounter] = m_prefabSystemComponent->InstantiatePrefab(templateToInstantiateId); } + + state.PauseTiming(); + ResetPrefabSystem(); + state.ResumeTiming(); } state.SetComplexityN(numInstances); diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp index 8e4c2eaad7..fdecde3732 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp @@ -36,7 +36,8 @@ namespace Benchmark AzFramework::Spawnable spawnable; AzToolsFramework::Prefab::SpawnableUtils::CreateSpawnable(spawnable, prefabDom); - + + ResetPrefabSystem(); state.ResumeTiming(); } From 4c6bd5fcb7e0660650147517e92bca733aa8fc7e Mon Sep 17 00:00:00 2001 From: srikappa-amzn Date: Fri, 11 Jun 2021 11:38:49 -0700 Subject: [PATCH 2/7] Disabled instantiate and spawnable benchmarks --- .../Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp | 8 ++------ .../Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp | 5 +++-- scripts/ctest/CMakeLists.txt | 8 ++++---- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp index 19180431a2..c32cacfbfc 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp @@ -41,19 +41,15 @@ namespace Benchmark { newInstances[instanceCounter] = m_prefabSystemComponent->InstantiatePrefab(templateToInstantiateId); } - - state.PauseTiming(); - ResetPrefabSystem(); - state.ResumeTiming(); } state.SetComplexityN(numInstances); - } + }/* BENCHMARK_REGISTER_F(BM_PrefabInstantiate, InstantiatePrefab_SingleEntityInstance) ->RangeMultiplier(10) ->Range(100, 10000) ->Unit(benchmark::kMillisecond) - ->Complexity(); + ->Complexity();*/ } #endif diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp index fdecde3732..fb8a9a389c 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp @@ -37,17 +37,18 @@ namespace Benchmark AzFramework::Spawnable spawnable; AzToolsFramework::Prefab::SpawnableUtils::CreateSpawnable(spawnable, prefabDom); - ResetPrefabSystem(); + state.ResumeTiming(); } state.SetComplexityN(numSpawnables); } + /* BENCHMARK_REGISTER_F(BM_SpawnableCreate, CreateSpawnable_SingleEntityInstance) ->RangeMultiplier(10) ->Range(100, 10000) ->Unit(benchmark::kMillisecond) - ->Complexity(); + ->Complexity();*/ } #endif diff --git a/scripts/ctest/CMakeLists.txt b/scripts/ctest/CMakeLists.txt index c4f86087b1..c07aaf4bff 100644 --- a/scripts/ctest/CMakeLists.txt +++ b/scripts/ctest/CMakeLists.txt @@ -20,8 +20,8 @@ endif() # Tests ################################################################################ -foreach(suite_name ${LY_TEST_GLOBAL_KNOWN_SUITE_NAMES}) - if(PAL_TRAIT_TEST_LYTESTTOOLS_SUPPORTED) +if(PAL_TRAIT_TEST_LYTESTTOOLS_SUPPORTED) + foreach(suite_name ${LY_TEST_GLOBAL_KNOWN_SUITE_NAMES}) ly_add_pytest( NAME pytest_sanity_${suite_name}_no_gpu PATH ${CMAKE_CURRENT_LIST_DIR}/sanity_test.py @@ -34,8 +34,8 @@ foreach(suite_name ${LY_TEST_GLOBAL_KNOWN_SUITE_NAMES}) TEST_SUITE ${suite_name} TEST_REQUIRES gpu ) - endif() -endforeach() + endforeach() +endif() # EPB Sanity test is being registered here to validate that the ly_add_editor_python_test function works. #if(PAL_TRAIT_BUILD_HOST_TOOLS AND PAL_TRAIT_BUILD_TESTS_SUPPORTED AND AutomatedTesting IN_LIST LY_PROJECTS_TARGET_NAME) From 1582cb52578cebecde93e0dfb9fb442113f56146 Mon Sep 17 00:00:00 2001 From: srikappa-amzn Date: Fri, 11 Jun 2021 12:43:35 -0700 Subject: [PATCH 3/7] Enabled instantiate benchmarks --- .../Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp index c32cacfbfc..5713b226b2 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabInstantiateBenchmarks.cpp @@ -44,12 +44,12 @@ namespace Benchmark } state.SetComplexityN(numInstances); - }/* + } BENCHMARK_REGISTER_F(BM_PrefabInstantiate, InstantiatePrefab_SingleEntityInstance) ->RangeMultiplier(10) ->Range(100, 10000) ->Unit(benchmark::kMillisecond) - ->Complexity();*/ + ->Complexity(); } #endif From e6ec9e48b4c1a122de813ba2084c3d489ebc1f39 Mon Sep 17 00:00:00 2001 From: srikappa-amzn Date: Fri, 11 Jun 2021 16:17:26 -0700 Subject: [PATCH 4/7] Changed spawnables benchmark test to create multiple spawnables at once --- .../Benchmark/SpawnableCreateBenchmarks.cpp | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp index fb8a9a389c..bf04f15cce 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp @@ -29,26 +29,28 @@ namespace Benchmark {}, m_pathString)); + AZStd::vector> spawnables; + spawnables.resize(numSpawnables); + auto& prefabDom = m_prefabSystemComponent->FindTemplateDom(instance->GetTemplateId()); for (auto _ : state) { - state.PauseTiming(); - - AzFramework::Spawnable spawnable; - AzToolsFramework::Prefab::SpawnableUtils::CreateSpawnable(spawnable, prefabDom); - - - state.ResumeTiming(); + for (int instanceCounter = 0; instanceCounter < numSpawnables; ++instanceCounter) + { + AZStd::unique_ptr spawnable = AZStd::make_unique(); + AzToolsFramework::Prefab::SpawnableUtils::CreateSpawnable(*spawnable, prefabDom); + spawnables[instanceCounter] = AZStd::move(spawnable); + } } state.SetComplexityN(numSpawnables); } - /* BENCHMARK_REGISTER_F(BM_SpawnableCreate, CreateSpawnable_SingleEntityInstance) ->RangeMultiplier(10) ->Range(100, 10000) ->Unit(benchmark::kMillisecond) - ->Complexity();*/ + ->Complexity(); } #endif + From 5b4333e4b127095dde53a2305e8e46eb321a3f8f Mon Sep 17 00:00:00 2001 From: srikappa-amzn Date: Tue, 15 Jun 2021 11:07:43 -0700 Subject: [PATCH 5/7] Added a comment and gave a variable better name --- .../Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp index bf04f15cce..cd992d4121 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp @@ -29,17 +29,18 @@ namespace Benchmark {}, m_pathString)); + // Create a vector to store spawnables so that they don't get destroyed immediately after construction. AZStd::vector> spawnables; spawnables.resize(numSpawnables); auto& prefabDom = m_prefabSystemComponent->FindTemplateDom(instance->GetTemplateId()); for (auto _ : state) { - for (int instanceCounter = 0; instanceCounter < numSpawnables; ++instanceCounter) + for (int spwanableCounter = 0; spwanableCounter < numSpawnables; ++spwanableCounter) { AZStd::unique_ptr spawnable = AZStd::make_unique(); AzToolsFramework::Prefab::SpawnableUtils::CreateSpawnable(*spawnable, prefabDom); - spawnables[instanceCounter] = AZStd::move(spawnable); + spawnables[spwanableCounter] = AZStd::move(spawnable); } } From 9f9c01e7812372a3332aae9bad1523550dd4671b Mon Sep 17 00:00:00 2001 From: srikappa-amzn Date: Tue, 15 Jun 2021 11:10:45 -0700 Subject: [PATCH 6/7] Used reserve instead of resize --- .../Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp index cd992d4121..c7a1a44ed5 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp @@ -31,7 +31,7 @@ namespace Benchmark // Create a vector to store spawnables so that they don't get destroyed immediately after construction. AZStd::vector> spawnables; - spawnables.resize(numSpawnables); + spawnables.reserve(numSpawnables); auto& prefabDom = m_prefabSystemComponent->FindTemplateDom(instance->GetTemplateId()); for (auto _ : state) From bd8b6aea8e3066fc036cf5ade083593bbecb14b2 Mon Sep 17 00:00:00 2001 From: srikappa-amzn Date: Tue, 15 Jun 2021 14:12:08 -0700 Subject: [PATCH 7/7] Moved vector declartion inside state for loop --- .../Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp index c7a1a44ed5..1901560b00 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/SpawnableCreateBenchmarks.cpp @@ -29,18 +29,19 @@ namespace Benchmark {}, m_pathString)); - // Create a vector to store spawnables so that they don't get destroyed immediately after construction. - AZStd::vector> spawnables; - spawnables.reserve(numSpawnables); auto& prefabDom = m_prefabSystemComponent->FindTemplateDom(instance->GetTemplateId()); for (auto _ : state) { + // Create a vector to store spawnables so that they don't get destroyed immediately after construction. + AZStd::vector> spawnables; + spawnables.reserve(numSpawnables); + for (int spwanableCounter = 0; spwanableCounter < numSpawnables; ++spwanableCounter) { AZStd::unique_ptr spawnable = AZStd::make_unique(); AzToolsFramework::Prefab::SpawnableUtils::CreateSpawnable(*spawnable, prefabDom); - spawnables[spwanableCounter] = AZStd::move(spawnable); + spawnables.push_back(AZStd::move(spawnable)); } }