Files
ayanova7/source/Plugins/AyaNova.PlugIn.PerfAdvisor/Advisor.cs
2018-06-29 19:47:36 +00:00

87 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using GZTW.AyaNova.BLL;
namespace AyaNova.PlugIn.PerfAdvisor
{
public partial class Advisor : Form
{
public Advisor()
{
InitializeComponent();
}
private void Advisor_Load(object sender, EventArgs e)
{
if (MessageBox.Show(
"Performance advisor will now test AyaNova base performance.\r\nThis may take some time.\r\n\r\nContinue?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2)
== DialogResult.Cancel)
this.Close();
List<PerfItem> list = new List<PerfItem>();
Stopwatch sw = new Stopwatch();
//Base db retrieval
int nBaseIterations = 50;
long dbOverhead = 0;//this is the time it takes just to run a query (sort of)
sw.Start();
for (int x = 0; x < nBaseIterations; x++)
{
GZTW.AyaNova.BLL.Region.GetItem(GZTW.AyaNova.BLL.Region.DefaultRegionID);
UserPickList.GetListOfOneSpecificUser(User.AdministratorID);
}
sw.Stop();
dbOverhead=sw.ElapsedMilliseconds/(nBaseIterations*2);
list.Add(new PerfItem("Base DB query overhead", dbOverhead , 1));
sw.Reset();
//Clients
sw.Start();
ClientPickList cpl = ClientPickList.GetList();
sw.Stop();
list.Add(new PerfItem("Client pick list", sw.ElapsedMilliseconds-dbOverhead, cpl.Count));
sw.Reset();
//Parts
sw.Start();
PartPickList ppl = PartPickList.GetAllParts();
sw.Stop();
list.Add(new PerfItem("Part pick list", sw.ElapsedMilliseconds-dbOverhead, ppl.Count));
sw.Reset();
//Units
sw.Start();
UnitPickList upl = UnitPickList.GetListOfAll();
sw.Stop();
list.Add(new PerfItem("Unit pick list", sw.ElapsedMilliseconds - dbOverhead, upl.Count));
sw.Reset();
System.Text.StringBuilder sb=new StringBuilder();
sb.Append("Results:\r\n");
foreach (PerfItem p in list)
{
sb.Append(p.Test);
sb.Append(": ");
sb.Append(p.Milliseconds.ToString());
sb.Append(" total milliseconds, ");
sb.Append(p.MillisecondsAverage.ToString());
sb.Append(" average milliseconds, ");
sb.Append(p.Count.ToString());
sb.Append(" count.\r\n");
}
MessageBox.Show(sb.ToString());
}
}
}