[NUI][Tizen.NUI.PreformanceTest] Fix reference bug
authorEunki, Hong <eunkiki.hong@samsung.com>
Thu, 31 Mar 2022 10:49:26 +0000 (19:49 +0900)
committerJaehyun Cho <jaehyun0cho@gmail.com>
Wed, 20 Apr 2022 08:38:08 +0000 (17:38 +0900)
Due to the Animation reference become zero, GC dispose it.
So It didn't call the OnAnimationFinished callback before disposed.
That's why deleteCount not matched with tickCount.

This patch fix that bug

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
58 files changed:
test/Tizen.NUI.PerformanceTest/PerformanceTest.cs [moved from test/Tizen.NUI.PerfNew/PerfNew.cs with 95% similarity]
test/Tizen.NUI.PerformanceTest/Tizen.NUI.PerformanceTest.code-workspace [moved from test/Tizen.NUI.PerfNew/Tizen.NUI.PerfNew.code-workspace with 98% similarity]
test/Tizen.NUI.PerformanceTest/Tizen.NUI.PerformanceTest.csproj [moved from test/Tizen.NUI.PerfNew/Tizen.NUI.PerfNew.csproj with 94% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-1.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-1.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-10.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-10.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-11.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-11.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-12.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-12.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-13.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-13.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-14.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-14.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-15.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-15.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-16.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-16.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-17.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-17.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-18.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-18.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-19.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-19.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-2.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-2.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-20.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-20.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-21.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-21.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-22.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-22.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-23.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-23.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-24.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-24.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-25.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-25.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-26.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-26.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-27.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-27.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-28.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-28.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-29.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-29.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-3.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-3.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-30.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-30.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-31.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-31.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-32.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-32.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-33.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-33.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-34.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-34.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-35.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-35.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-36.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-36.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-37.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-37.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-38.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-38.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-39.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-39.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-4.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-4.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-40.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-40.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-41.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-41.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-42.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-42.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-43.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-43.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-44.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-44.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-45.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-45.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-46.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-46.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-47.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-47.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-48.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-48.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-49.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-49.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-5.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-5.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-50.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-50.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-51.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-51.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-52.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-52.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-53.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-53.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-6.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-6.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-7.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-7.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-8.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-8.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-9.jpg [moved from test/Tizen.NUI.PerfNew/res/image/gallery-medium-9.jpg with 100% similarity]
test/Tizen.NUI.PerformanceTest/shared/res/Tizen.NUI.PerformanceTest.png [moved from test/Tizen.NUI.PerfNew/shared/res/Tizen.NUI.PerfNew.png with 100% similarity]
test/Tizen.NUI.PerformanceTest/tizen-manifest.xml [moved from test/Tizen.NUI.PerfNew/tizen-manifest.xml with 54% similarity]

similarity index 95%
rename from test/Tizen.NUI.PerfNew/PerfNew.cs
rename to test/Tizen.NUI.PerformanceTest/PerformanceTest.cs
index a63b8d5..b74e219 100644 (file)
@@ -25,7 +25,7 @@ using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Constants;
 
 
-class PerfNewExample : NUIApplication
+class PerformanceTestExample : NUIApplication
 {
     const uint ROWS_COUNT = 32;
     const uint COLUMNS_COUNT = 32;
@@ -33,10 +33,10 @@ class PerfNewExample : NUIApplication
     const uint DURATION_PER_COLUMNS = 50; // miliseconds
     const float VIEW_MARGIN_RATE = 0.1f;
     enum ViewTestType{
-        TEST_TYPE_COLOR = 0,     ///< Test with simple color
-        TEST_TYPE_IMAGE,         ///< Test with simple image
-        TEST_TYPE_TEXT,          ///< Test with simple text label
-        TEST_TYPE_ROUNDED_COLOR, ///< Test with rounded color
+        TEST_TYPE_COLOR = 0,            ///< Test with simple color
+        TEST_TYPE_IMAGE,                ///< Test with simple image
+        TEST_TYPE_TEXT,                 ///< Test with simple text label
+        TEST_TYPE_ROUNDED_COLOR,        ///< Test with rounded color
 #if ALLOW_BORDER_AND_BLUR
         TEST_TYPE_BORDER_COLOR,         ///< Test with borderline color
         TEST_TYPE_ROUNDED_BORDER_COLOR, ///< Test with rounded borderline color
@@ -169,13 +169,16 @@ class PerfNewExample : NUIApplication
         }
     };
     Statistic mCreationStatistic;
-    global::System.Collections.Generic.LinkedList<View> mViewList;
-    global::System.Collections.Generic.LinkedList<Timer> mTimerList;
     Window mWindow;
     Vector2 mWindowSize;
     Vector2 mSize;
     ViewTestType mTestType = ViewTestType.TEST_TYPE_COLOR;
 
+    // To keep reference count.
+    global::System.Collections.Generic.LinkedList<View> mViewList;
+    global::System.Collections.Generic.LinkedList<Timer> mTimerList;
+    global::System.Collections.Generic.LinkedList<Animation> mAnimationList;
+
     uint mColumnsCount = ROWS_COUNT;
     uint mRowsCount = COLUMNS_COUNT;
     uint mTotalColumnsCount = TOTAL_COLUMNS_COUNT;
@@ -192,6 +195,7 @@ class PerfNewExample : NUIApplication
 
         mViewList  = new global::System.Collections.Generic.LinkedList<View>();
         mTimerList = new global::System.Collections.Generic.LinkedList<Timer>();
+        mAnimationList = new global::System.Collections.Generic.LinkedList<Animation>();
 
         mWindow = Window.Instance;
         mWindow.BackgroundColor = Color.White;
@@ -299,6 +303,8 @@ class PerfNewExample : NUIApplication
         animation.Finished += OnAnimationFinished;
         animation.Play();
 
+        mAnimationList.AddLast(animation);
+
         endTime = DateTime.Now;
 
         mCreationStatistic.add((endTime - startTime).TotalMilliseconds);
@@ -344,14 +350,21 @@ class PerfNewExample : NUIApplication
         mTimerList.First.Value.Dispose();
         mTimerList.RemoveFirst();
 
+        // Dereference animation safety
+        mAnimationList.RemoveFirst();
+
         deleteCount++;
 
+        Animation me = o as Animation;
+        me.Dispose();
+
         // If all views are deleted, quit this application. byebye~
         if(deleteCount == mTotalColumnsCount * (int)ViewTestType.TEST_TYPE_MAX)
         {
             appEndTime = DateTime.Now;
             Tizen.Log.Error("NUI.PerfNew", $"Duration of all app running time : {((appEndTime - appStartTime)).TotalMilliseconds} ms\n");
             Deactivate();
+            FullGC();
             Exit();
         }
     }
@@ -475,7 +488,7 @@ class PerfNewExample : NUIApplication
     [STAThread] // Forces app to use one thread to access NUI
     static void Main(string[] args)
     {
-        PerfNewExample example = new PerfNewExample();
+        PerformanceTestExample example = new PerformanceTestExample();
         example.Run(args);
     }
-}
\ No newline at end of file
+}
@@ -2,7 +2,7 @@
     <PropertyGroup>
         <OutputType>Exe</OutputType>
         <TargetFramework>netcoreapp3.1</TargetFramework>
-        <AssemblyName>PerfNew</AssemblyName>
+        <AssemblyName>PerformanceTest</AssemblyName>
     </PropertyGroup>
 
     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
similarity index 54%
rename from test/Tizen.NUI.PerfNew/tizen-manifest.xml
rename to test/Tizen.NUI.PerformanceTest/tizen-manifest.xml
index fe272d2..3b34ebc 100755 (executable)
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns="http://tizen.org/ns/packages" api-version="6" package="org.tizen.example.Tizen.NUI.PerfNew" version="1.0.0">
+<manifest xmlns="http://tizen.org/ns/packages" api-version="6" package="org.tizen.example.Tizen.NUI.PerformanceTest" version="1.0.0">
   <profile name="common" />
-  <ui-application appid="org.tizen.example.Tizen.NUI.PerfNew"
-                                       exec="PerfNew.dll"
-                                       type="dotnet"
+  <ui-application appid="org.tizen.example.Tizen.NUI.PerformanceTest"
+                                       exec="PerformanceTest.dll"
+                                       type="dotnet-nui"
                                        multiple="false"
                                        taskmanage="true"
                                        nodisplay="false"
                                        launch_mode="single"
                                        >
-    <label>Tizen.NUI.PerfNew</label>
-    <icon>Tizen.NUI.PerfNew.png</icon>
+    <label>Tizen.NUI.PerformanceTest</label>
+    <icon>Tizen.NUI.PerformanceTest.png</icon>
     <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
   </ui-application>
 </manifest>