遭遇AutoMapper性能问题:映射200条数据比100条慢了近千倍

Posted dudu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遭遇AutoMapper性能问题:映射200条数据比100条慢了近千倍相关的知识,希望对你有一定的参考价值。

今天遇到了AutoMapper的一个性能问题,使用的是AutoMapper的Project特性,AutoMapper版本是3.3.0,代码如下:

return await _repository
    .GetByStartId(startIngId, itemCount)
    .Project()
    .To<TDto>()
    .ToListAsync();

当获取包含200条数据的列表时,竟然超过5秒。

GetDocs(3000, 200)
6304ms

GetDocs(3000, 200)
5822ms

GetDocs(3000, 200)
7553ms

而改为100条数据,只需不到10毫秒。

GetDocs(3000, 100)
10ms

GetDocs(3000, 100)
7ms

GetDocs(3000, 100,)
6ms

相差近千倍,真是不可思议。

不用AutoMapper,直接用Select new {},问题立马解决。

以上是关于遭遇AutoMapper性能问题:映射200条数据比100条慢了近千倍的主要内容,如果未能解决你的问题,请参考以下文章

如何使用automapper映射与多个表的数据集

如何使用automapper映射与多个表的数据集

解决 AutoMapper ProjectTo 不起作用的问题

每日踩坑 2018-06-19 AutoMapper简单性能测试

[非专业翻译] 高性能对象映射框架

忽略使用 Automapper 映射一个属性