static void Main(string[] args) { var object1 = new Abc { Strings = "String", IntProperty = 1, IntProperty2 = 2 }; var object2 = new Abc { Strings = "String", IntProperty = 1, SubClass = new List <Efg>() { new Efg() { BoolProperty = true } } }; var res1 = object2.ComplexMap(new AbcVm()); var res2 = object2.FasterMap(new AbcVm(), vm => new[] { nameof(vm.Strings), nameof(vm.IntProperty) }); Mapper.Initialize(config => { config.CreateMap <Customer, CustomerVm>(); config.CreateMap <Order, OrderVm>(); }); var testCustomer = new Customer() { City = "Eko", FirstName = "Suraj", LastName = "Deji", ID = 1, Order = new Order() { Name = "Benz", Quantity = 1 } }; Console.WriteLine("========== ExIgniter Map ================"); Stopwatch sw = new Stopwatch(); sw.Start(); var a = testCustomer.FasterMap(new CustomerVm()); sw.Stop(); Console.WriteLine("Elapsed={0}", sw.Elapsed); Console.WriteLine("==========AutoMapper================"); Stopwatch sw1 = new Stopwatch(); sw1.Start(); var vmCustomer = Mapper.Map <CustomerVm>(testCustomer); sw1.Stop(); Console.WriteLine("Elapsed={0}", sw1.Elapsed); // Console.WriteLine("============Map2=============="); Stopwatch sw2 = new Stopwatch(); sw2.Start(); var r = testCustomer.Map(new CustomerVm()); sw2.Stop(); // Console.WriteLine("Elapsed={0}", sw2.Elapsed); Console.WriteLine("============Manual=============="); Stopwatch sw3 = new Stopwatch(); sw3.Start(); var test = new CustomerVm { Cty = testCustomer.City, FiName = testCustomer.FirstName, LastName = testCustomer.LastName, Id = testCustomer.ID , OrderVm = new OrderVm() { Name = "kmimoi" } }; var newList = new List <CustomerVm>() { new CustomerVm() { Cty = "Ibadan", FiName = "Ahmed", LastName = "Tunde", Id = 1, OrderVm = new OrderVm() { Name = "kmimoi", SubClass = new List <Efg>() { new Efg { BoolProperty = true } } } }, new CustomerVm() { Cty = "Oshodi", FiName = "Sikiru", LastName = "Ruka", Id = 500 }, new CustomerVm() { Cty = "osogbo", FiName = "John", LastName = "Buhar", Id = 3 }, new CustomerVm() { Cty = "Kano", FiName = "Atiku", LastName = "Osibajo", Id = 4, OrderVm = new OrderVm() { Name = "kmimoi" } } }; sw3.Stop(); Console.WriteLine("Elapsed={0}", sw3.Elapsed); Console.WriteLine("Elapsed={0}", newList.ToPrettyString()); Console.WriteLine("========== ExIgniter Complex ================"); Stopwatch sw4 = new Stopwatch(); sw4.Start(); var res = testCustomer.ComplexMap(new CustomerVm()); sw4.Stop(); Console.WriteLine("Elapsed={0}", sw4.Elapsed); Console.Read(); }