From 2452306e6c096c09be79286eba8440492c45cdd2 Mon Sep 17 00:00:00 2001 From: Flamefire Date: Sat, 25 Oct 2014 00:37:09 +0200 Subject: [PATCH] Add benchmark --- Vocaluxe/Base/CCover.cs | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/Vocaluxe/Base/CCover.cs b/Vocaluxe/Base/CCover.cs index c3654484..14b4c03a 100644 --- a/Vocaluxe/Base/CCover.cs +++ b/Vocaluxe/Base/CCover.cs @@ -17,10 +17,12 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Drawing; using System.IO; using System.Threading; using System.Threading.Tasks; +using System.Windows.Forms; using System.Xml.Serialization; using VocaluxeLib; using VocaluxeLib.Draw; @@ -175,17 +177,34 @@ namespace Vocaluxe.Base private static void _TestNewLoad(string path) { - SThemeCover theme; + SThemeCover themeCover; using (var stream = new FileStream(path, FileMode.Open)) - theme = CMyXmlDeserializer.Deserialize(stream); - string cover = theme.Info.Author; - STheme themescreen; - using (var stream = new StreamReader(Path.Combine(CBase.Themes.GetThemeScreensPath(-1), "ScreenMain.xml"))) - themescreen = CMyXmlDeserializer.Deserialize(stream); - TextReader textReader = new StreamReader(Path.Combine(CBase.Themes.GetThemeScreensPath(-1), "ScreenMain.xml")); - XmlSerializer deserializer = new XmlSerializer(typeof(STheme)); - STheme theme2 = (STheme)deserializer.Deserialize(textReader); - Foo(theme2, themescreen); + themeCover = CMyXmlDeserializer.Deserialize(stream); + string cover = themeCover.Info.Author; + STheme theme = new STheme(); + STheme theme2 = new STheme(); + Stopwatch watch = new Stopwatch(); + watch.Start(); + for (int i = 0; i < 10000; i++) + { + using (var stream = new StreamReader(Path.Combine(CBase.Themes.GetThemeScreensPath(-1), "ScreenMain.xml"))) + theme = CMyXmlDeserializer.Deserialize(stream); + } + watch.Stop(); + Stopwatch watch2 = new Stopwatch(); + watch2.Start(); + for (int i = 0; i < 100; i++) + { + using (TextReader textReader = new StreamReader(Path.Combine(CBase.Themes.GetThemeScreensPath(-1), "ScreenMain.xml"))) + { + XmlSerializer deserializer = new XmlSerializer(typeof(STheme)); + + theme2 = (STheme)deserializer.Deserialize(textReader); + } + } + watch2.Stop(); + Foo(theme, theme2); + MessageBox.Show(watch.ElapsedMilliseconds + "ms/5000=" + watch.ElapsedMilliseconds / 1000 + "ms vs " + watch2.ElapsedMilliseconds / 100); } ///