2つのdataGridViewに2種類のメソッドを入力しました:
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)Lambdaメソッド:867 ms
2)Linqメソッド:39 msこの結果は正しいですか?私はそれが正反対でなければならないと思います...
また、fillButtonをクリックして、このメソッドを呼び出します。パフォーマンス結果はばかげて変化します。これはクレイジーだと思います。867ミリ秒の2回目のクリックの結果56ミリ秒の3回目のクリック45ミリ秒...