zoukankan      html  css  js  c++  java
  • spring得到实例和new一个实例,哪个快?

    spring配置的bean是默认单例,那么在程序中,得到一个实例一定比创建一个实例的速度快,也更加省资源。今天实际测试的时候发现,new 一个对象比spring得到一个对象快多了。后面自己又加了个单例测试,来对比一下,看实测结果:

    public static void main(String[] args) {
            ReceiveProcess receiveProcess;
            ApplicationContext appCt = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); 
            long begin = System.currentTimeMillis();
            int num = 10000000;
            for (int i = 0; i < num; i++) {
                receiveProcess =  (ReceiveProcess) appCt.getBean("textReceive");
            }
            System.out.println("spring得到实例总时间:" + (System.currentTimeMillis() - begin));
            long begin2 = System.currentTimeMillis();
            ReceiveProcess  re = null;
            for (int j = 0; j < num; j++) {
                re = new TextReceiveProcess();
            }
            System.out.println("创建实例得到的总时间:"+ (System.currentTimeMillis() - begin2));
            
            ReceiveProcess reInstance = null;;
            long begin3 = System.currentTimeMillis();
            for (int d = 0; d < num; d++) {
                reInstance = TextReceiveProcess.getInstance();
            }
            System.out.println("单例情况下得到总时间:"+(System.currentTimeMillis() - begin3));
        }

    得到的结果:

    spring得到实例总时间:5257
    创建实例得到的总时间:48
    单例情况下得到总时间:16

    偶尔会出现这种结果,这个结果我就有点不是很理解了,有时候创建的对象和单例得到的实例时间差不多,这是为什么了?

    spring得到实例总时间:5258
    创建实例得到的总时间:32
    单例情况下得到总时间:31

    总结一下,不知道有没有跟我一样理解的朋友。以为spring配置的bean比new一个更加省时省力,实际上测试的结果确不是这样子的。我们用spring实际是用spring管理资源,知道一些特性后,直接拿来用。当遇到性能要求时,或许这块的功能反而起到了反作用,今天我所遇到的就是这样的事。

  • 相关阅读:
    查看和修改PATH环境变量(Linux通用)
    Linux文件权限
    配置WAMP完美攻略
    Windows命令行
    Python中的import可以搜索到哪些路径
    查看Python安装路径
    移动端触摸事件及对象
    CSS3动画(360度旋转、旋转放大、放大、移动)
    如何让滚动条始终保持在底部
    第一个markdown
  • 原文地址:https://www.cnblogs.com/wxwall/p/3607815.html
Copyright © 2011-2022 走看看