gpt4 book ai didi

c# - : Automapper, Valuinjector 和手动映射哪个更快?每一个都快到什么程度?

转载 作者:可可西里 更新时间:2023-11-01 07:47:49 25 4
gpt4 key购买 nike

<分区>

假设我的 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与手动映射相比。我确信手动映射是最快的,但速度是多少?

  1. Are some scenarios much slower/faster than others (e.g. flattening, etc)?

  2. Would it make sense to do a hybrid approach to mapping objects between layers?

我问的原因是因为创建了一个名为 emitmapper 的 Codeplex 项目来解决 automapper 中的性能问题,我记得看到一条评论说 automapper 可能需要 0.5ms 来映射一个大类。 (需要引用)

我还记得看到一篇文章描述了如果加载时间在 70 毫秒以内(而不是 90 毫秒或更长),用户如何更有可能留在您的网站上。 (我也在寻找这个链接)。如果 automapper 消耗了我的大部分页面加载时间,再加上网络延迟,那么我认为有可能不使用 automapper 并为我的大容量页面创建手动类,并坚持使用混合方法。

底线:我会自己运行测试,但我对 .NET 内部结构了解不够,无法创建可用作可重用指南的准确结果。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com