Giter VIP home page Giter VIP logo

expressionmapper's Introduction

ExpressionMapper

高性能对象映射库

构造测试类

 public class TestA
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public TestC TestClass { get; set; }

        public IEnumerable<TestC> TestLists { get; set; }
    }

    public class TestB
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public TestD TestClass { get; set; }

        public TestD[] TestLists { get; set; }
    }

    public class TestC
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public TestC SelfClass { get; set; }
    }

    public class TestD
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public TestD SelfClass { get; set; }
    }

调用如下

var mode=new TestA();
TestB b = Mapper<TestA, TestB>.Map(model);

var a = new TestA();
a.ID = 1;
var b = new TestB();
Mapper<TestA, TestB>.Map(a ,b);

Benchmark

BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17741
Intel Core i5-7500 CPU 3.40GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.1.400
  [Host]     : .NET Core 2.1.2 (CoreCLR 4.6.26628.05, CoreFX 4.6.26629.01), 64bit RyuJIT
  DefaultJob : .NET Core 2.1.2 (CoreCLR 4.6.26628.05, CoreFX 4.6.26629.01), 64bit RyuJIT

Type Method Mean Error StdDev Median
NativeMapperBenchmark Nomal 17.31 ns 0.3750 ns 0.4605 ns 17.38 ns
ExpressionMapperBenchmark Nomal 36.03 ns 0.7282 ns 0.8386 ns 36.24 ns
MapsterBenchmark Nomal 79.94 ns 0.6340 ns 0.5294 ns 79.89 ns
TinyMapperBenchmark Nomal 95.83 ns 0.4406 ns 0.3906 ns 95.76 ns
AutoMapperBenchmark Nomal 205.25 ns 2.4091 ns 2.2535 ns 205.73 ns
NativeMapperBenchmark Complex 33.67 ns 0.5558 ns 0.4927 ns 33.64 ns
ExpressionMapperBenchmark Complex 62.55 ns 1.2546 ns 2.0613 ns 61.57 ns
MapsterBenchmark Complex 105.50 ns 1.5860 ns 1.4835 ns 105.29 ns
TinyMapperBenchmark Complex 129.28 ns 2.3093 ns 2.1601 ns 128.99 ns
AutoMapperBenchmark Complex 6,640.28 ns 107.8270 ns 95.5859 ns 6,648.63 ns
NativeMapperBenchmark List 213.80 ns 3.1112 ns 2.9103 ns 213.93 ns
ExpressionMapperBenchmark List 226.52 ns 4.4336 ns 4.1472 ns 226.23 ns
MapsterBenchmark List 237.45 ns 3.1549 ns 2.9511 ns 237.59 ns
TinyMapperBenchmark List 368.29 ns 3.3650 ns 3.1477 ns 368.41 ns
AutoMapperBenchmark List 12,998.71 ns 240.7413 ns 225.1895 ns 12,981.34 ns
NativeMapperBenchmark Nest 95.87 ns 1.9204 ns 2.0548 ns 95.86 ns
ExpressionMapperBenchmark Nest 146.40 ns 2.1350 ns 1.9970 ns 145.73 ns
MapsterBenchmark Nest 176.49 ns 3.4855 ns 3.4232 ns 176.28 ns
TinyMapperBenchmark Nest 213.45 ns 1.2942 ns 1.1472 ns 213.45 ns
AutoMapperBenchmark Nest 25,652.31 ns 495.8452 ns 509.1965 ns 25,614.89 ns

expressionmapper's People

Contributors

bieyuan avatar elderjames avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.