From 75f8d8dadda68be7c80233d49a25ef4d482a35a5 Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Mon, 20 Sep 2021 11:47:09 +0200 Subject: [PATCH 1/6] [Sofa.Helper] Store id as an id rather than the message used to find the id --- .../SofaHelper/src/sofa/helper/ScopedAdvancedTimer.cpp | 9 +++++---- .../SofaHelper/src/sofa/helper/ScopedAdvancedTimer.h | 9 ++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.cpp b/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.cpp index bce0adcfc85..48314ed10c2 100644 --- a/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.cpp +++ b/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.cpp @@ -26,19 +26,20 @@ namespace sofa::helper { ScopedAdvancedTimer::ScopedAdvancedTimer(const std::string& message) - : ScopedAdvancedTimer(message.c_str()) + : m_id( message ) { + AdvancedTimer::stepBegin( m_id ); } ScopedAdvancedTimer::ScopedAdvancedTimer( const char* message ) - : message( message ) + : m_id( message ) { - AdvancedTimer::stepBegin( message ); + AdvancedTimer::stepBegin( m_id ); } ScopedAdvancedTimer::~ScopedAdvancedTimer() { - AdvancedTimer::stepEnd( message ); + AdvancedTimer::stepEnd( m_id ); } } /// sofa::helper diff --git a/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.h b/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.h index cdd96ae6c01..93a029178e5 100644 --- a/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.h +++ b/SofaKernel/modules/SofaHelper/src/sofa/helper/ScopedAdvancedTimer.h @@ -24,6 +24,8 @@ #include #include +#include + namespace sofa::helper { @@ -37,9 +39,10 @@ namespace sofa::helper /// measurement recorded. struct SOFA_HELPER_API ScopedAdvancedTimer { - const char* message; - ScopedAdvancedTimer(const std::string& message); - ScopedAdvancedTimer( const char* message ); + AdvancedTimer::IdStep m_id; + + explicit ScopedAdvancedTimer(const std::string& message); + explicit ScopedAdvancedTimer( const char* message ); ~ScopedAdvancedTimer(); }; From 8323c634e5ff9a774930cc5a539a6e2f5fb238ee Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Mon, 20 Sep 2021 11:47:44 +0200 Subject: [PATCH 2/6] [Sofa.Helper] Use map for constant complexity instead of a std::vector --- .../src/sofa/helper/AdvancedTimer.h | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/SofaKernel/modules/SofaHelper/src/sofa/helper/AdvancedTimer.h b/SofaKernel/modules/SofaHelper/src/sofa/helper/AdvancedTimer.h index ddac4fa316c..0e55c9e9a55 100644 --- a/SofaKernel/modules/SofaHelper/src/sofa/helper/AdvancedTimer.h +++ b/SofaKernel/modules/SofaHelper/src/sofa/helper/AdvancedTimer.h @@ -24,10 +24,8 @@ #include #include #include -#include #include -#include #include #include @@ -167,10 +165,12 @@ class SOFA_HELPER_API AdvancedTimer /// the list of the id names. the Ids are the indices in the vector std::vector idsList; + std::map idsMap; IdFactory() { - idsList.push_back(std::string("0")); // ID 0 == "0" or empty string + idsMap.insert({"0", 0}); + idsList.push_back("0"); } public: @@ -184,22 +184,17 @@ class SOFA_HELPER_API AdvancedTimer if (name.empty()) return 0; IdFactory& idfac = getInstance(); - std::vector::iterator it = idfac.idsList.begin(); - unsigned int i = 0; - while (it != idfac.idsList.end() && (*it) != name) - { - ++it; - i++; - } - - if (it!=idfac.idsList.end()) - return i; - else + const auto it = idfac.idsMap.find(name); + if (it == idfac.idsMap.end()) { + const auto idsMapSize = idfac.idsMap.size(); + idfac.idsMap.insert({name, idsMapSize}); idfac.idsList.push_back(name); - return i; + return idsMapSize; } + + return it->second; } static std::size_t getLastID() From 54113cb045718a5065cf15ddd4d8840deb34f3fc Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Mon, 20 Sep 2021 13:15:23 +0200 Subject: [PATCH 3/6] [SofaCore] Missing include --- .../modules/SofaCore/src/sofa/core/behavior/ConstraintSolver.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SofaKernel/modules/SofaCore/src/sofa/core/behavior/ConstraintSolver.cpp b/SofaKernel/modules/SofaCore/src/sofa/core/behavior/ConstraintSolver.cpp index 4c6a3e05f7c..c971c410bc7 100644 --- a/SofaKernel/modules/SofaCore/src/sofa/core/behavior/ConstraintSolver.cpp +++ b/SofaKernel/modules/SofaCore/src/sofa/core/behavior/ConstraintSolver.cpp @@ -23,6 +23,7 @@ #include #include #include +#include namespace sofa::core::behavior { From 22eca4d12232ae969e3a3954fd3dddbba65911ab Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Mon, 20 Sep 2021 15:17:15 +0200 Subject: [PATCH 4/6] [SofaCore] Missing include --- .../SofaSimulationCore/src/sofa/simulation/SolveVisitor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SofaKernel/modules/SofaSimulationCore/src/sofa/simulation/SolveVisitor.cpp b/SofaKernel/modules/SofaSimulationCore/src/sofa/simulation/SolveVisitor.cpp index 8cf4a9917b3..847faa2755b 100644 --- a/SofaKernel/modules/SofaSimulationCore/src/sofa/simulation/SolveVisitor.cpp +++ b/SofaKernel/modules/SofaSimulationCore/src/sofa/simulation/SolveVisitor.cpp @@ -24,6 +24,7 @@ #include #include #include +#include namespace sofa::simulation { From ceeb2fdc02c796482cf19b7d8b701e364e2022a0 Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Mon, 20 Sep 2021 16:55:15 +0200 Subject: [PATCH 5/6] [SofaCore] Missing include --- .../src/SofaExplicitOdeSolver/EulerSolver.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SofaKernel/modules/SofaExplicitOdeSolver/src/SofaExplicitOdeSolver/EulerSolver.cpp b/SofaKernel/modules/SofaExplicitOdeSolver/src/SofaExplicitOdeSolver/EulerSolver.cpp index d6fd5fcab52..a7f35ebb17d 100644 --- a/SofaKernel/modules/SofaExplicitOdeSolver/src/SofaExplicitOdeSolver/EulerSolver.cpp +++ b/SofaKernel/modules/SofaExplicitOdeSolver/src/SofaExplicitOdeSolver/EulerSolver.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include using sofa::simulation::mechanicalvisitor::MechanicalGetNonDiagonalMassesCountVisitor; From a00d84393953470e957b119a9688f7e1848f60fa Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Mon, 20 Sep 2021 17:42:19 +0200 Subject: [PATCH 6/6] [SofaCore] Missing include --- .../src/SofaImplicitOdeSolver/StaticSolver.cpp | 2 +- .../src/SofaConstraint/ConstraintAnimationLoop.cpp | 1 + .../src/SofaGeneralAnimationLoop/MultiStepAnimationLoop.cpp | 1 + .../src/SofaGeneralAnimationLoop/MultiTagAnimationLoop.cpp | 1 + .../src/SofaGeneralMeshCollision/DirectSAPNarrowPhase.cpp | 2 +- 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/SofaKernel/modules/SofaImplicitOdeSolver/src/SofaImplicitOdeSolver/StaticSolver.cpp b/SofaKernel/modules/SofaImplicitOdeSolver/src/SofaImplicitOdeSolver/StaticSolver.cpp index 6e42867880e..a4eceec8bb5 100644 --- a/SofaKernel/modules/SofaImplicitOdeSolver/src/SofaImplicitOdeSolver/StaticSolver.cpp +++ b/SofaKernel/modules/SofaImplicitOdeSolver/src/SofaImplicitOdeSolver/StaticSolver.cpp @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include #include diff --git a/modules/SofaConstraint/src/SofaConstraint/ConstraintAnimationLoop.cpp b/modules/SofaConstraint/src/SofaConstraint/ConstraintAnimationLoop.cpp index 2786f07a415..54d5bb4ea38 100644 --- a/modules/SofaConstraint/src/SofaConstraint/ConstraintAnimationLoop.cpp +++ b/modules/SofaConstraint/src/SofaConstraint/ConstraintAnimationLoop.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include diff --git a/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiStepAnimationLoop.cpp b/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiStepAnimationLoop.cpp index e5e2bb49616..e8cb712d8ad 100644 --- a/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiStepAnimationLoop.cpp +++ b/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiStepAnimationLoop.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include diff --git a/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiTagAnimationLoop.cpp b/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiTagAnimationLoop.cpp index f2083cd74c8..965fa63c0dd 100644 --- a/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiTagAnimationLoop.cpp +++ b/modules/SofaGeneralAnimationLoop/src/SofaGeneralAnimationLoop/MultiTagAnimationLoop.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include diff --git a/modules/SofaGeneralMeshCollision/src/SofaGeneralMeshCollision/DirectSAPNarrowPhase.cpp b/modules/SofaGeneralMeshCollision/src/SofaGeneralMeshCollision/DirectSAPNarrowPhase.cpp index 548c7b3301c..13a1dfbd65e 100644 --- a/modules/SofaGeneralMeshCollision/src/SofaGeneralMeshCollision/DirectSAPNarrowPhase.cpp +++ b/modules/SofaGeneralMeshCollision/src/SofaGeneralMeshCollision/DirectSAPNarrowPhase.cpp @@ -21,7 +21,7 @@ ******************************************************************************/ #include #include -#include +#include #include #include #include