自动映射器在映射时损害了具有超过 1327 DTO 的 .net 应用程序的性能



我们在Dot net应用程序中使用AutoMapper 3.1.1.0。我们有很多需要映射的类。初始化映射所需的时间几乎是 22 秒。我们有近 1327 个 DTO 需要映射。

我们可以说每个DTO平均具有8个属性。

我关心的是,对于我们签入 1327 个映射 DTO 列表的每条消息,
,然后使用

 if (MappingManager.MessageMappings.ContainsKey(message.GetType()))
            {
                var myMessage = Mapper.Map(message, message.GetType(), MappingManagerFile.MessageMappings[message.GetType()]);

所以它会损害性能。我们需要在使用后处理,还是自动映射器自己照顾?在任务管理器中,执行此转换的组件占用大量内存。

因此,请建议我们需要使用哪些替代来提高性能。

更高版本的 AutoMapper 会延迟编译配置。仍然有一些启动时间,发现和映射类型,但编译运行时映射函数是懒惰完成的。

我建议尝试 5.0 版本并比较数字。

使用自动映射器映射这么多实体需要一些时间。 您是急于加载实体还是使用延迟加载? 我过去在使用延迟加载时见过这些问题,因为自动映射器在获取所有关系数据时会生成大量数据库命中。

预先加载可能是您最好的选择,或者我建议只加载您需要的内容。 似乎一次加载很多数据。

相关内容

  • 没有找到相关文章

最新更新