diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs
index 2a9e8a2c..d0a6c36c 100644
--- a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs
+++ b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs
@@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
using MetroFramework.Forms;
-using Newtonsoft.Json.Linq;
using PckStudio.Extensions;
using PckStudio.Forms.Utilities;
+using PckStudio.Internal;
namespace PckStudio.Forms.Additional_Popups.Animation
{
@@ -30,11 +30,10 @@ namespace PckStudio.Forms.Additional_Popups.Animation
private void InitializeTreeviews()
{
- Stopwatch stopwatch = Stopwatch.StartNew();
+ Profiler.Start();
GetTileDataToView("blocks", treeViewBlocks.Nodes, treeViewBlockCache.Add);
GetTileDataToView("items", treeViewItems.Nodes, treeViewItemCache.Add);
- stopwatch.Stop();
- Debug.WriteLine($"{nameof(InitializeTreeviews)} took {stopwatch.ElapsedMilliseconds}ms");
+ Profiler.Stop();
}
private void treeViews_AfterSelect(object sender, TreeViewEventArgs e)
@@ -57,7 +56,7 @@ namespace PckStudio.Forms.Additional_Popups.Animation
"items" => AnimationResources.ItemTileInfos,
_ => throw new InvalidOperationException(key)
};
- Stopwatch stopwatch = Stopwatch.StartNew();
+ Profiler.Start();
try
{
if (textureInfos is not null)
@@ -83,8 +82,7 @@ namespace PckStudio.Forms.Additional_Popups.Animation
MessageBox.Show(j_ex.Message, "Error");
return;
}
- stopwatch.Stop();
- Debug.WriteLine($"{nameof(GetTileDataToView)} took {stopwatch.ElapsedMilliseconds}ms", category: nameof(ChangeTile));
+ Profiler.Stop();
}
void filter_TextChanged(object sender, EventArgs e)
diff --git a/PCK-Studio/Internals/ApplicationBuildInfo.cs b/PCK-Studio/Internal/ApplicationBuildInfo.cs
similarity index 100%
rename from PCK-Studio/Internals/ApplicationBuildInfo.cs
rename to PCK-Studio/Internal/ApplicationBuildInfo.cs
diff --git a/PCK-Studio/Internals/ApplicationScope.cs b/PCK-Studio/Internal/ApplicationScope.cs
similarity index 85%
rename from PCK-Studio/Internals/ApplicationScope.cs
rename to PCK-Studio/Internal/ApplicationScope.cs
index bdd24c51..70a14eb4 100644
--- a/PCK-Studio/Internals/ApplicationScope.cs
+++ b/PCK-Studio/Internal/ApplicationScope.cs
@@ -24,7 +24,8 @@ namespace PckStudio
internal static void Initialize()
{
- Stopwatch stopwatch = Stopwatch.StartNew();
+ Profiler.Configure(Debug.Listeners[0]);
+ Profiler.Start();
{
_entityImages ??= Resources.entities_sheet.CreateImageList(32).ToArray();
DataCacher ??= new FileCacher(Program.AppDataCache);
@@ -34,8 +35,7 @@ namespace PckStudio
SettingsManager.Initialize();
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
}
- stopwatch.Stop();
- Debug.WriteLine($"{nameof(ApplicationScope.Initialize)} took {stopwatch.ElapsedMilliseconds}ms");
+ Profiler.Stop();
}
}
}
\ No newline at end of file
diff --git a/PCK-Studio/Internals/CommitInfo.cs b/PCK-Studio/Internal/CommitInfo.cs
similarity index 100%
rename from PCK-Studio/Internals/CommitInfo.cs
rename to PCK-Studio/Internal/CommitInfo.cs
diff --git a/PCK-Studio/Internal/Profiler.cs b/PCK-Studio/Internal/Profiler.cs
new file mode 100644
index 00000000..922f05af
--- /dev/null
+++ b/PCK-Studio/Internal/Profiler.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PckStudio.Internal
+{
+ internal static class Profiler
+ {
+ private static Stopwatch _stopwatch = new Stopwatch();
+ private static TraceListener _listener;
+
+ [Conditional("DEBUG")]
+ internal static void Configure(TraceListener listener)
+ {
+ _listener = listener;
+ }
+
+ [Conditional("DEBUG")]
+ internal static void Start([CallerMemberName] string caller = default!, [CallerFilePath] string source = default!, [CallerLineNumber] int line = default!)
+ {
+ _listener?.WriteLine($"Stopwatch starts", category: nameof(Profiler));
+ _listener?.WriteLine($"{source}@{caller}:{line}", category: nameof(Profiler));
+ _stopwatch.Restart();
+ }
+
+ [Conditional("DEBUG")]
+ internal static void Stop([CallerMemberName] string caller = default!, [CallerFilePath] string source = default!, [CallerLineNumber] int line = default!)
+ {
+ _stopwatch.Stop();
+ _listener?.WriteLine($"{caller} took {_stopwatch.ElapsedMilliseconds}ms", category: nameof(Profiler));
+ }
+
+ }
+}
diff --git a/PCK-Studio/Internals/SettingsManager.cs b/PCK-Studio/Internal/SettingsManager.cs
similarity index 100%
rename from PCK-Studio/Internals/SettingsManager.cs
rename to PCK-Studio/Internal/SettingsManager.cs
diff --git a/PCK-Studio/Internals/SkinANIM.cs b/PCK-Studio/Internal/SkinANIM.cs
similarity index 100%
rename from PCK-Studio/Internals/SkinANIM.cs
rename to PCK-Studio/Internal/SkinANIM.cs
diff --git a/PCK-Studio/Internals/SkinBOX.cs b/PCK-Studio/Internal/SkinBOX.cs
similarity index 100%
rename from PCK-Studio/Internals/SkinBOX.cs
rename to PCK-Studio/Internal/SkinBOX.cs
diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj
index fb0d51b7..50456f78 100644
--- a/PCK-Studio/PckStudio.csproj
+++ b/PCK-Studio/PckStudio.csproj
@@ -195,7 +195,7 @@
AppSettingsForm.cs
-
+
@@ -219,11 +219,12 @@
-
-
-
+
+
+
+
-
+
@@ -261,7 +262,7 @@
WiiUPanel.cs
-
+
Form