该类不支持.net 1.1
using System;
using System.Data;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
namespace Common
{
/// <summary>
/// 函数执行时间统计
/// </summary>
/// <example>
/// public void function1()
/// {
/// QueryTime.Start("function1");
/// // 处理代码
/// QueryTime.Stop("function1");
/// }
///
/// public void function2()
/// {
/// QueryTime.Start("function2");
/// // 处理代码
/// QueryTime.Stop("function2");
/// }
///
/// public void main()
/// {
/// function1();
/// function2();
/// function1();
/// Console.WriteLine(QueryTime.Total());
/// }
///
/// result:
/// function1 Call 2 count, useTime 00:00:01.1234567
/// function2 Call 1 count, useTime 00:00:00.1234567
/// </example>
public class QueryTime
{
internal List<TimeSpan> timeSpan = new List<TimeSpan>();
internal Stopwatch watch = new Stopwatch();
public void Start(string key)
{
QueryTime qt;
if (!map.TryGetValue(key, out qt))
{
qt = new QueryTime();
map.Add(key, qt);
}
qt.watch.Reset();
qt.watch.Start();
}
public void Stop(string key)
{
QueryTime qt = map[key];
qt.watch.Stop();
qt.timeSpan.Add(qt.watch.Elapsed);
}
public void Reset(string key)
{
QueryTime qt = map[key];
qt.watch.Stop();
qt.watch.Reset();
}
Dictionary<string, QueryTime> map = new Dictionary<string, QueryTime>();
public string Total()
{
StringBuilder builder = new StringBuilder();
foreach (string key in map.Keys)
{
QueryTime qt = map[key];
TimeSpan total = new TimeSpan();
foreach (TimeSpan ts in qt.timeSpan)
{
total = total.Add(ts);
}
builder.AppendFormat("{0} Call {1} count, useTime {2}\r\n ", key, qt.timeSpan.Count, total);
}
return builder.ToString();
}
}
}
using System.Data;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
namespace Common
{
/// <summary>
/// 函数执行时间统计
/// </summary>
/// <example>
/// public void function1()
/// {
/// QueryTime.Start("function1");
/// // 处理代码
/// QueryTime.Stop("function1");
/// }
///
/// public void function2()
/// {
/// QueryTime.Start("function2");
/// // 处理代码
/// QueryTime.Stop("function2");
/// }
///
/// public void main()
/// {
/// function1();
/// function2();
/// function1();
/// Console.WriteLine(QueryTime.Total());
/// }
///
/// result:
/// function1 Call 2 count, useTime 00:00:01.1234567
/// function2 Call 1 count, useTime 00:00:00.1234567
/// </example>
public class QueryTime
{
internal List<TimeSpan> timeSpan = new List<TimeSpan>();
internal Stopwatch watch = new Stopwatch();
public void Start(string key)
{
QueryTime qt;
if (!map.TryGetValue(key, out qt))
{
qt = new QueryTime();
map.Add(key, qt);
}
qt.watch.Reset();
qt.watch.Start();
}
public void Stop(string key)
{
QueryTime qt = map[key];
qt.watch.Stop();
qt.timeSpan.Add(qt.watch.Elapsed);
}
public void Reset(string key)
{
QueryTime qt = map[key];
qt.watch.Stop();
qt.watch.Reset();
}
Dictionary<string, QueryTime> map = new Dictionary<string, QueryTime>();
public string Total()
{
StringBuilder builder = new StringBuilder();
foreach (string key in map.Keys)
{
QueryTime qt = map[key];
TimeSpan total = new TimeSpan();
foreach (TimeSpan ts in qt.timeSpan)
{
total = total.Add(ts);
}
builder.AppendFormat("{0} Call {1} count, useTime {2}\r\n ", key, qt.timeSpan.Count, total);
}
return builder.ToString();
}
}
}