zoukankan      html  css  js  c++  java
  • 继承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得到的方便性类似于反射的机制,但滥用同样有可能导致严重的后果。

  • 相关阅读:
    javascript DOM事件总结
    MySQL索引优化实例说明
    CSV导出大量数据
    最详细的PHP flush()与ob
    XSS攻击(跨站攻击)
    MySQL视图
    MySQL索引
    待整理
    Height、clientHeight、scrollHeight、offsetHeight 、scrollTop、offsetTop
    Cookie和Session的区别
  • 原文地址:https://www.cnblogs.com/micro-chen/p/5783849.html
Copyright © 2011-2022 走看看