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

标签 c# performance oop

我有一个 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 };
    }
}

这样的映射对性能有多大影响?忽略我们必须为所有类型编写映射这一事实,只关注在进行实际映射时损失的性能。

最佳答案

How much does a mapping like this really affect performance?

我会说这样的映射即使在高流量系统中也不会影响性能。与您可能正在执行的其他操作相比,调用 getter 和 setter 的成本可能可以忽略不计。

显然这只是大约 2 美分,如果您想要真正的东西,请执行性能基准测试并测量有和没有映射的差异。

至少那是我会做的:制作符合要求的东西,然后对其进行基准测试,然后有两种可能性:您对结果满意 => 投入生产并享受生活,或者您对结果不满意这些基准测试让您确定这部分是您应用程序的瓶颈 => 重构代码并开始考虑优化它。但切勿过早进行优化,否则您将很难遵守项目截止日期。

关于c# - 在高负载系统 C# 中映射 POCO 的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255823/

相关文章:

c# - ( Entity Framework )分组依据 - 低性能

Java 与 OO 设计

c++ - 成员类可以从它的父类继承吗?

C++ hash_map find() 与 contains() 性能对比

c# - 将数组 1 中的每个元素与数组 2 中的每个元素组合

c# - .NET WebSocket 客户端和服务器库

C# 修改字符串

java - 如何将 Activity 的弱接口(interface)类型传递给单例类

c++ - 类中的 Boost::Mutex 不是线程安全的

c# - 在打开的cmd中运行命令