//[TestMethod] public void CompareCachedPerformance() { var dt = AllType.GetTableCached(); const int reps = 10000; CachedDaliPerformanceParallel(1); // JIT CachedRawPerformance(1); // JIT var sw = Stopwatch.StartNew(); CachedDaliPerformanceParallel(reps); sw.Stop(); Console.WriteLine("DaLi parallel cached (" + reps + "): " + sw.ElapsedMilliseconds.ToString()); sw.Reset(); sw.Start(); CachedDaliPerformance(reps); sw.Stop(); Console.WriteLine("DaLi cached (" + reps + "): " + sw.ElapsedMilliseconds.ToString()); sw.Reset(); sw.Start(); CachedDaliPerformanceList(reps); sw.Stop(); Console.WriteLine("DaLi cached list (" + reps + "): " + sw.ElapsedMilliseconds.ToString()); sw.Reset(); sw.Start(); CachedRawPerformance(reps); sw.Stop(); Console.WriteLine("Raw implementation cached (" + reps + "): " + sw.ElapsedMilliseconds.ToString()); }
private void CachedDaliPerformance(int repeats) { var dt = AllType.GetTableCached(); for (int i = 0; i < repeats; i++) { foreach (DataRow dr in dt.Rows) { AllType inst = new AllType(); inst.Fill(dr); } } }
private void CachedDaliPerformanceParallel(int repeats) { var dt = AllType.GetTableCached(); for (int i = 0; i < repeats; i++) { var instances = dt.Rows.Cast <DataRow>() .AsParallel() .AsOrdered() .Select(dr => { AllType result = new AllType(); result.Fill(dr); return(result); }); instances.ToList(); } }