• 继承Object和ContextBoundObject处理效率上的差距


    继承Object和ContextBoundObject处理效率上的差距

           ContextBoundObject一个很熟悉的对象,它提供对象有处理上下文的能力;通过它能够方便地实现AOP处理机制。它带来好处的同时也会带来效率上的损失,到底继承ContextBoundObject后会在效率上损失多少呢?下面用简单的代码测试一下;测试方法很简单就是建立两个具有相同方法的对象,一个继承于ContextBoundObject一个没有;然后分别循环次数地执行对象的创建和方法调用(以下测试代码并不能完全反映所有应用情况)。

    测试代码

                    System.Diagnostics.Stopwatch stop = new System.Diagnostics.Stopwatch();

                    stop.Reset();

                    stop.Start();

                    for (int i = 0; i < 10000; i++)

                    {

                        Class1 cl1 = new Class1();

                        cl1.Add();

                    }

                    stop.Stop();

                    Console.WriteLine(stop.ElapsedTicks);

     

                    stop.Reset();

                    stop.Start();

                    for (int i = 0; i < 10000; i++)

                    {

                        Class2 cl2 = new Class2();

                        cl2.Add();

                    }

                    stop.Stop();

                    Console.WriteLine(stop.ElapsedTicks);

    类定义代码

        public class Class1

        {

            public void Add()

            {

            }

        }

        public class Class2 : ContextBoundObject

        {

            public void Add()

            {

            }

        }

    测试结果

    Class1处理花的时间:22555(1/100毫微秒)

    Class2处理花的时间:4747008(1/100毫微秒)

     

    从测试结构可以看到,继承ContextBoundObject在处理效率上损失还是很利害的。但实际开发过程可以根据情况使用(开发方便性和执行效率总是很难取得平衡)。ContextBoundObject得到的方便性类似于反射的机制,但滥用同样有可能导致严重的后果。

  • 相关阅读:
    GDB常用命令
    codevs1743
    Codeforces Round #369 (Div. 2)E
    Codeforces Round #200 (Div. 2)E
    2016 Multi-University Training Contest 4 T9
    2016 Multi-University Training Contest 1 T3
    2016 Multi-University Training Contest 1 T4
    HDU 5448 Marisa’s Cake
    codeforces 467C George and Job dp
    poj 1704 Georgia and Bob 博弈
  • 原文地址:https://www.cnblogs.com/micro-chen/p/5783849.html
Copyright © 2020-2023  润新知