在高负载系统C#中映射POCO的成本

P. *_*Roe 2 c# oop performance

我有一个poco需要映射到高流量系统中的另一个poco.我打算在一个简单的映射器中将这些对象映射到一起,类似于:

public class a 
{
    public int MyValue { get;set; }
    public string YAV { get; set; }
}

public class B
{
    public int aTestValue { get;set; }
    public string YetAnotherValue { get; set; }
}

public class Mapper 
{
    public static B MapIt(A a)
    {
        return new B { aTestValue = a.MyValue, YetAnotherValue = a.YAV };
    }
}
Run Code Online (Sandbox Code Playgroud)

这样的映射对性能有多大影响?忽略这样一个事实,即我们必须为所有类型编写映射,并且只关注执行实际映射时丢失的性能.

Dar*_*rov 8

这样的映射对性能有多大影响?

我会说这种映射即使在高流量系统中也不会影响性能.与您可能正在进行的其他操作相比,调用getter和setter的成本可能会微不足道.

显然,这只是2美分,如果你想要真正的东西做性能基准测试,并测量与映射和没有映射的差异.

至少我会这样做:制作符合要求的东西,然后对其进行基准测试,然后有两种可能性:你对结果感到满意=>在生产中出货并享受生活,或者你对结果和那些基准不满意允许您确定此部分是您的应用程序的瓶颈=>重构代码并开始考虑优化它.但永远不要过早优化,否则你很难尊重项目的最后期限.

  • “过早的优化是万恶之源。” ——高德纳 (2认同)