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得到的方便性类似于反射的机制,但滥用同样有可能导致严重的后果。

  • 相关阅读:
    Struts访问servletAPI方式
    Struts结果跳转方式(四种result配置)
    struts与ognl结合【重要】
    Yii --Command 任务处理
    安卓 短信去重(看好了,是短信去重,不是联系人去重)
    快速排序算法之我见(附上C代码)
    Ext JS4百强应用:设置textfield的悬浮提示信息 --第8强
    窗体添加阴影效果如此简单
    使用apache daemon让java程序在unix系统上以服务方式运行
    控件布局通用解决方案
  • 原文地址:https://www.cnblogs.com/micro-chen/p/5783849.html
Copyright © 2011-2022 走看看