Use static profiler object instead of dynamic one 96/248296/2 accepted/tizen/unified/20201126.233219 submit/tizen/20201126.061710
authorInki Dae <inki.dae@samsung.com>
Wed, 25 Nov 2020 06:48:42 +0000 (15:48 +0900)
committerInki Dae <inki.dae@samsung.com>
Wed, 25 Nov 2020 08:17:30 +0000 (08:17 +0000)
Only one profiler object is needed per a inference engine common class
so use static profiler object instead of dynamic one.

Change-Id: I29980442617aaca6e50b07392c50c74154a3ac29
Signed-off-by: Inki Dae <inki.dae@samsung.com>
include/inference_engine_common_impl.h
src/inference_engine_common_impl.cpp

index 3af4c6cb5acd3ff3d02aa538f6ae3b54be99ecf2..0517e799649a693e799b4378a19cf962961b7572 100644 (file)
@@ -249,7 +249,7 @@ namespace Common
                inference_backend_type_e mSelectedBackendEngine;
 
                // Profiler
-               InferenceEngineProfiler *mProfiler;
+               InferenceEngineProfiler mProfiler;
                // In default, we use profiler.
                bool mUseProfiler;
                unsigned int mProfilerDumpType;
index d4d903b6f71bfda7c7d6851873637260d971dfd3..f65c5f3968a793db569ce9f6b071cacc5391fc8d 100644 (file)
@@ -53,7 +53,6 @@ namespace Common
 
        InferenceEngineCommon::InferenceEngineCommon() :
                        mSelectedBackendEngine(INFERENCE_BACKEND_NONE),
-                       mProfiler(),
                        mUseProfiler(false),
                        mProfilerDumpType(IE_PROFILER_DUMP_MIN),
                        mBackendModule(),
@@ -69,8 +68,7 @@ namespace Common
                LOGW("ENTER");
 
                if (mUseProfiler == true) {
-                       mProfiler->Dump(mProfilerDumpType);
-                       delete mProfiler;
+                       mProfiler.Dump(mProfilerDumpType);
                }
 
                LOGW("LEAVE");
@@ -211,8 +209,6 @@ out:
                mUseProfiler = enable;
 
                if (mUseProfiler == true) {
-                       mProfiler = new InferenceEngineProfiler();
-
                        // In default, profile data will be stored to a given file.
                        mProfilerDumpType = IE_PROFILER_DUMP_FILE;
                }
@@ -241,7 +237,7 @@ out:
                }
 
                mProfilerDumpType = IE_PROFILER_DUMP_FILE;
-               mProfiler->SetDumpFilename(filename);
+               mProfiler.SetDumpFilename(filename);
 
                return INFERENCE_ENGINE_ERROR_NONE;
        }
@@ -321,7 +317,7 @@ out:
 
                if (mUseProfiler == true) {
                        // Memory usage will be measured between BindBackend ~ UnbindBackend callbacks.
-                       mProfiler->Start(IE_PROFILER_MEMORY);
+                       mProfiler.Start(IE_PROFILER_MEMORY);
                }
 
                std::string backendLibName =
@@ -345,7 +341,7 @@ out:
                }
 
                if (mUseProfiler == true) {
-                       mProfiler->AddBackendName(config->backend_name);
+                       mProfiler.AddBackendName(config->backend_name);
                }
 
                LOGI("LEAVE");
@@ -370,7 +366,7 @@ out:
 
                if (mUseProfiler == true) {
                        // Memory usage will be measured between BindBackend ~ UnbindBackend callbacks.
-                       mProfiler->Start(IE_PROFILER_MEMORY);
+                       mProfiler.Start(IE_PROFILER_MEMORY);
                }
 
                std::string backendNameTable[INFERENCE_BACKEND_MAX] = {
@@ -390,7 +386,7 @@ out:
                }
 
                if (mUseProfiler == true) {
-                       mProfiler->AddBackendName(backendNameTable[backend_type]);
+                       mProfiler.AddBackendName(backendNameTable[backend_type]);
                }
 
                LOGI("LEAVE");
@@ -404,7 +400,7 @@ out:
 
                if (mUseProfiler == true) {
                        // Memory usage will be measured between BindBackend ~ UnbindBackend callbacks.
-                       mProfiler->Stop(IE_PROFILER_MEMORY);
+                       mProfiler.Stop(IE_PROFILER_MEMORY);
                }
 
                if (mBackendModule) {
@@ -435,7 +431,7 @@ out:
                        LOGE("Fail to SetTargetDevice");
 
                if (mUseProfiler == true) {
-                       mProfiler->AddTargetDevices(types);
+                       mProfiler.AddTargetDevices(types);
                }
 
                return ret;
@@ -449,9 +445,9 @@ out:
                CHECK_ENGINE_INSTANCE(mBackendHandle);
 
                if (mUseProfiler == true) {
-                       mProfiler->AddModelName(model_paths[0]);
-                       mProfiler->PushEnv();
-                       mProfiler->Start(IE_PROFILER_LATENCY);
+                       mProfiler.AddModelName(model_paths[0]);
+                       mProfiler.PushEnv();
+                       mProfiler.Start(IE_PROFILER_LATENCY);
                }
 
                int ret = mBackendHandle->Load(model_paths, model_format);
@@ -461,7 +457,7 @@ out:
                }
 
                if (mUseProfiler == true) {
-                       mProfiler->Stop(IE_PROFILER_LATENCY, "Load");
+                       mProfiler.Stop(IE_PROFILER_LATENCY, "Load");
                }
 
                LOGI("LEAVE");
@@ -611,7 +607,7 @@ out:
                CHECK_ENGINE_INSTANCE(mBackendHandle);
 
                if (mUseProfiler == true) {
-                       mProfiler->Start(IE_PROFILER_LATENCY);
+                       mProfiler.Start(IE_PROFILER_LATENCY);
                }
 
                int ret = mBackendHandle->Run(input_buffers, output_buffers);
@@ -621,7 +617,7 @@ out:
                }
 
                if (mUseProfiler == true) {
-                       mProfiler->Stop(IE_PROFILER_LATENCY, "Run");
+                       mProfiler.Stop(IE_PROFILER_LATENCY, "Run");
                }
 
                return ret;