哪个更快:Automapper,Valuinjector还是手动映射? 每个人的速度到什么程度?
假设我的DAL(ORM等)中有这个对象
public class Student { public string Name {get;set;} public string Address {get;set;} public string Phone {get;set;} public Parent Parent {get;set;} } public class Parent { public string Name {get;set;} public string Address {get;set;} public string Phone {get;set;} }
我有一个看起来像这样的ViewModel
public class StudentDetailVM { public string Name {get;set;} public string Address {get;set;} public string Phone {get;set;} public string ParentName {get;set;} public string ParentPhone {get;set;} }
在那种情况下,我需要展平对象。 我可以使用Automapper,ValueInjector等工具完成此操作,或者我可以手动执行此操作。 如果有许多这样的类要处理,这是一项繁琐的工作,但似乎在这三种方法之间存在性能/开发人员效率之间的权衡。
我正在寻找有关何时使用Automapper与Valueinjector和手动映射的指导。 我确定手动映射是最快的,但是多少?
某些场景是否比其他场景慢得多/更快(例如展平等)?
使用混合方法在层之间映射对象是否有意义?
我问的原因是因为创建了一个名为emitmapper的Codeplex项目来解决automapper中的性能问题,我记得看到一条评论说自动化器可能需要0.5毫秒来映射一个大类。 (需要参考)
我还记得看过一篇文章,该文章描述了如果用户在70毫秒内加载,而不是90毫秒或更长时间,他们在网站上停留的可能性会更高。 (我也在寻找这个链接)。 如果automapper占用了我的大部分页面加载时间,加上网络延迟,那么我发现有可能不使用automapper并为我的高容量页面创建手动类,并坚持使用混合方法。
底线:我会自己运行测试,但我不太了解.NET内部结构,以创建可用作可重用指南的准确结果。
底线:我会自己运行测试,但我不太了解.NET内部结构,以创建可用作可重用指南的准确结果。
您不需要了解.NET内部。 您只需要知道您的性能要求是什么以及您的典型用法是什么样的。 在各种方式下在典型使用场景下对代码进行分析,并选择满足您的性能要求并且最容易维护的代码(即,不一定选择性能最高的;还有其他标准)。
上述就是C#学习教程:哪个更快:Automapper,Valuinjector还是手动映射? 每个人的速度到什么程度?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/990416.html