Replace all Stopwatch with Timeit

This commit is contained in:
bao-qian 2015-11-02 00:04:05 +00:00
parent 79fdba969b
commit bfa0db3ba3
3 changed files with 69 additions and 68 deletions

View File

@ -92,17 +92,16 @@ namespace Wox.Core.Plugin
PluginPair pair = pluginPair;
ThreadPool.QueueUserWorkItem(o =>
{
Stopwatch sw = new Stopwatch();
sw.Start();
pair.Plugin.Init(new PluginInitContext
using (var time = new Timeit($"Plugin init: {pair.Metadata.Name}"))
{
CurrentPluginMetadata = pair.Metadata,
Proxy = HttpProxy.Instance,
API = API
});
sw.Stop();
Debug.WriteLine(string.Format("Plugin init:{0} - {1}", pair.Metadata.Name, sw.ElapsedMilliseconds));
pair.InitTime = sw.ElapsedMilliseconds;
pair.Plugin.Init(new PluginInitContext
{
CurrentPluginMetadata = pair.Metadata,
Proxy = HttpProxy.Instance,
API = API
});
pair.InitTime = time.Current;
}
InternationalizationManager.Instance.UpdatePluginMetadataTranslations(pair);
});
}
@ -168,25 +167,15 @@ namespace Wox.Core.Plugin
{
try
{
Stopwatch sw = new Stopwatch();
sw.Start();
List<Result> results = pair.Plugin.Query(query) ?? new List<Result>();
results.ForEach(o =>
using (var time = new Timeit("Preload programs"))
{
o.PluginID = pair.Metadata.ID;
});
sw.Stop();
Debug.WriteLine(string.Format("Plugin query: {0} - {1}", pair.Metadata.Name, sw.ElapsedMilliseconds));
pair.QueryCount += 1;
if (pair.QueryCount == 1)
{
pair.AvgQueryTime = sw.ElapsedMilliseconds;
var results = pair.Plugin.Query(query) ?? new List<Result>();
results.ForEach(o => { o.PluginID = pair.Metadata.ID; });
var seconds = time.Current;
pair.QueryCount += 1;
pair.AvgQueryTime = pair.QueryCount == 1 ? seconds : (pair.AvgQueryTime + seconds) / 2;
API.PushResults(query, pair.Metadata, results);
}
else
{
pair.AvgQueryTime = (pair.AvgQueryTime + sw.ElapsedMilliseconds) / 2;
}
API.PushResults(query, pair.Metadata, results);
}
catch (System.Exception e)
{

View File

@ -1,23 +1,38 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Wox.Plugin;
namespace Wox.Infrastructure
{
public class Timeit : IDisposable
{
private Stopwatch stopwatch = new Stopwatch();
private string name;
private readonly Stopwatch _stopwatch = new Stopwatch();
private readonly string _name;
public Timeit(string name)
{
this.name = name;
stopwatch.Start();
_name = name;
_stopwatch.Start();
}
public long Current
{
get
{
_stopwatch.Stop();
long seconds = _stopwatch.ElapsedMilliseconds;
_stopwatch.Start();
Debug.WriteLine(_name + ":" + _stopwatch.ElapsedMilliseconds + "ms");
return seconds;
}
}
public void Dispose()
{
stopwatch.Stop();
Debug.WriteLine(name + ":" + stopwatch.ElapsedMilliseconds + "ms");
_stopwatch.Stop();
Debug.WriteLine(_name + ":" + _stopwatch.ElapsedMilliseconds + "ms");
}
}
}

View File

@ -80,50 +80,47 @@ namespace Wox.ImageLoader
public static ImageSource Load(string path, bool addToCache = true)
{
Stopwatch sw = new Stopwatch();
sw.Start();
if (string.IsNullOrEmpty(path)) return null;
if (addToCache)
using (new Timeit($"Loading image path: {path}"))
{
ImageCacheStroage.Instance.Add(path);
}
ImageSource img = null;
if (imageCache.ContainsKey(path))
{
img = imageCache[path];
}
else
{
string ext = Path.GetExtension(path).ToLower();
if (path.StartsWith("data:", StringComparison.OrdinalIgnoreCase))
if (string.IsNullOrEmpty(path)) return null;
if (addToCache)
{
img = new BitmapImage(new Uri(path));
}
else if (selfExts.Contains(ext) && File.Exists(path))
{
img = GetIcon(path);
}
else if (!string.IsNullOrEmpty(path) && imageExts.Contains(ext) && File.Exists(path))
{
img = new BitmapImage(new Uri(path));
ImageCacheStroage.Instance.Add(path);
}
if (img != null && addToCache)
ImageSource img = null;
if (imageCache.ContainsKey(path))
{
if (!imageCache.ContainsKey(path))
img = imageCache[path];
}
else
{
string ext = Path.GetExtension(path).ToLower();
if (path.StartsWith("data:", StringComparison.OrdinalIgnoreCase))
{
imageCache.Add(path, img);
img = new BitmapImage(new Uri(path));
}
else if (selfExts.Contains(ext) && File.Exists(path))
{
img = GetIcon(path);
}
else if (!string.IsNullOrEmpty(path) && imageExts.Contains(ext) && File.Exists(path))
{
img = new BitmapImage(new Uri(path));
}
if (img != null && addToCache)
{
if (!imageCache.ContainsKey(path))
{
imageCache.Add(path, img);
}
}
}
return img;
}
sw.Stop();
Debug.WriteLine(string.Format("Loading image path: {0} - {1}ms",path,sw.ElapsedMilliseconds));
return img;
}
// http://blogs.msdn.com/b/oldnewthing/archive/2011/01/27/10120844.aspx