i rempli 2 datagridview avec deux types de procédé:
1) Lambda Expression:
lequel est le meilleur pour remplir DataGridView lambda ou linq?
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 Méthode:
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);
}
i ai 2 question importante
1) cette méthode chronomètre est-elle correcte ou suffisante ou existe-t-il une meilleure méthode pour calculer la performance?
2) En haut cette fois; Je sais que l'expression lambda est plus rapide que LINQ classique (de x dans le tableau, etc ...) Mais Résultat du test est surprenant:
1) Méthode Lambda: 867 ms
2) Linq Méthode: 39 ms Cette le résultat est correct? Je m'attends à ce que ce soit juste le contraire ...
AUSSI cliquez sur fillButton pour appeler cette méthode. résultat de la performance bêtement changer. Je pense que c'est fou. 867 ms deuxième clic résultat 56 ms troisième clic 45 ms ....
Les exécutez-vous les uns après les autres? Vos résultats sont-ils faussés par JIT? Votre source de données sert-elle les résultats du cache une seconde fois? –