Rya*_*yan 11 c# asp.net c#-4.0
我正在使用AUtomapper,但我印象非常深刻,我有一个带有许多嵌套集合的复杂对象.我正在使用Telerik OpenAccess,它会快速返回1400条记录,但是当我将它传递给Automapper时,它会慢慢变成荒谬的爬行.这是我的代码供参考:
List<DAL.Event> query = httpContext.Events.Where(e => e.Inactive != true && e.Event_Locations != null).ToList();
Mapper.CreateMap<DAL.Event, EventDTO>();
Mapper.CreateMap<DAL.Event_Association, EventAssociationDTO>();
Mapper.CreateMap<DAL.Event_ExecutingUnit, EventExecutingUnitDTO>();
Mapper.CreateMap<DAL.Event_Funding, EventFundingDTO>();
Mapper.CreateMap<DAL.Event_Location, EventLocationDTO>();
Mapper.CreateMap<DAL.Event_Objective, EventObjectiveDTO>();
Mapper.CreateMap<DAL.Event_OSR, EventOSRDTO>();
Mapper.CreateMap<DAL.Event_PaxBreakDown, EventPAXBreakDownDTO>();
Mapper.CreateMap<DAL.Event_RegionalConsideration, EventRegionalConsiderationDTO>();
Mapper.CreateMap<DAL.Event_ReviewStatus, EventReviewStatusDTO>();
Mapper.CreateMap<DAL.Event_SPCalendarClone, EventSPCalendarClonesDTO>();
Mapper.CreateMap<DAL.Event_Task, EventTasksDTO>();
Mapper.CreateMap<DAL.Event_TSO, EventTSOsDTO>();
Mapper.AssertConfigurationIsValid();
Mapper.AllowNullDestinationValues = true;
IList<EventDTO> result = Mapper.Map<List<DAL.Event>, List<EventDTO>>(query);
return result;
Run Code Online (Sandbox Code Playgroud)
救命!
Bry*_*her 12
我对automapper进行了基准测试.2.0GHz Xeon的单核能够在一个小物体(3个属性)上每秒处理85,000个地图.它比手动复制属性慢60倍.如果您愿意,我可以为您评估其他值.
Ger*_*nck 11
我之前的工作中有一个团队也在使用Automapper,但最终他们因为性能影响而删除了它.
我认为在这个特定情况下,最好自己编写映射代码,或者逐个替换它们.也许一个映射导致性能不佳?
对于那些后来发布的人来说,AutoMapper 5.x版本的性能得到了显着提升,其中映射速度仅略微慢于手绘(1M项):
| 归档时间: |
|
| 查看次数: |
6774 次 |
| 最近记录: |