я заполнил 2 dataGridView двумя способами:
1) Лямбда-выражение:
protected void FillLamdaMethod()
{
Stopwatch sw = Stopwatch.StartNew();
using (eCommerceContext ctx = new eCommerceContext())
{
List<table_bilgisayar> listBilgisayar = new List<table_bilgisayar>();
listBilgisayar = ctx.table_bilgisayar.ToList();
dataGridViewLamda.DataSource = listBilgisayar;//qry.AsEnumerable();
}
sw.Stop();
lblLamdaResult.Text = String.Format("Time used (float): {0} ms",sw.Elapsed.TotalMilliseconds)+Environment.NewLine;
lblLamdaResult.Text+=String.Format("Time used (rounded): {0} ms", sw.ElapsedMilliseconds);
}
2) Метод Linq:
protected void FillClassicMethod()
{
Stopwatch sw = Stopwatch.StartNew();
using (eCommerceContext ctx = new eCommerceContext())
{
List<table_bilgisayar> listBilgisayar = new List<table_bilgisayar>();
listBilgisayar =(from q in ctx.table_bilgisayar select q).ToList();
dataGridViewClasicLinq.DataSource = listBilgisayar;//(from q in ctx.table_bilgisayar select q.model).ToList();
}
sw.Stop();
lblClassicResult.Text = String.Format("Time used (float): {0} ms", sw.Elapsed.TotalMilliseconds)+Environment.NewLine;
lblClassicResult.Text += String.Format("Time used (rounded): {0} ms", sw.ElapsedMilliseconds);
}
у меня есть 2 важных вопроса
1) этот метод секундомера правильный или достаточный или есть лучший способ для вычисления производительности?
2) на этот раз;я знаю, что лямбда-выражение гораздо быстрее классического linq (из x в таблице и т. д.), но результат теста удивителен:
1) лямбда-метод: 867 мс
2) метод linq: 39 мсправильный?я ожидаю, что это должно быть как раз наоборот ...
ТАКЖЕ нажмите кнопку fillButton для вызова этого метода.результат производительности тупо изменится.Я думаю, что это безумие.867 мсек результат второго клика 56 мсек третий клик 45 мс ....