static void TestMappersGeneric(OrderModel source, OrderModel target) { var mappers = new ObjectCopyBase <OrderModel, OrderModel>[] { new MapperSetterGeneric <OrderModel, OrderModel>() }; var stopper = new Stopwatch(); var testRuns = 1000000; foreach (var mapper in mappers) { mapper.MapTypes(); stopper.Restart(); for (var i = 0; i < testRuns; i++) { mapper.Copy(source, target); } stopper.Stop(); var time = stopper.ElapsedMilliseconds / (double)testRuns; Console.WriteLine(mapper.GetType().Name + ": " + time); } }
static void TestMappers(object source, object target) { var mappers = new ObjectCopyBase[] { new MapperUnoptimized(), new MapperOptimized(), new MapperDynamicCode(), new MapperLcg(), new MapperSetter() }; var sourceType = source.GetType(); var targetType = target.GetType(); var stopper = new Stopwatch(); var testRuns = 1000000; foreach (var mapper in mappers) { mapper.MapTypes(sourceType, targetType); stopper.Restart(); for (var i = 0; i < testRuns; i++) { mapper.Copy(source, target); } stopper.Stop(); var time = stopper.ElapsedMilliseconds / (double)testRuns; Console.WriteLine(mapper.GetType().Name + ": " + time); } }