小编Pas*_*aye的帖子

DynamicMethod比编译的IL函数慢得多

我写了一个复制公共属性的简单对象复制器.我无法弄清楚为什么Dynamic方法比c#版本慢得多.

持续时间

C#方法:4,963毫秒

动态方法:19,924毫秒

请注意 - 当我在启动秒表之前运行动态方法时 - 持续时间不包括编译阶段.我在调试和发布模式下,在x86和x64模式下运行,从VS和命令行运行,结果大致相同(动态方法慢400%).

        const int NBRECORDS = 100 * 1000 * 1000;

        public class Person
        {
            private int mSomeNumber;

            public string FirstName { get; set; }
            public string LastName { get; set; }
            public DateTime DateOfBirth { get; set; }
            public int SomeNumber
            {
                get { return mSomeNumber; }
                set { mSomeNumber = value; }
            }
        }

        public static Action<T1, T2> CreateCopier<T1, T2>()
        {
            var meth = new DynamicMethod("copy", null, new Type[] { typeof(T1), …
Run Code Online (Sandbox Code Playgroud)

c# il cil dynamicmethod

8
推荐指数
2
解决办法
3145
查看次数

标签 统计

c# ×1

cil ×1

dynamicmethod ×1

il ×1