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管理资源,知道一些特性后,直接拿来用。当遇到性能要求时,或许这块的功能反而起到了反作用,今天我所遇到的就是这样的事。

  • 相关阅读:
    转(一致性哈希算法(consistent hashing))
    【CMD】findstr命令
    【Android】 Sqlite3 not found
    【Android】Sqlite3命令详解
    数据结构-哈夫曼树
    数据结构-线索化二叉树
    【原创】解决国内Android SDK无法更新问题更新
    数据结构-插入排序之希尔排序
    数据结构-插入排序之直接插入排序
    数据结构-二叉树的遍历
  • 原文地址:https://www.cnblogs.com/wxwall/p/3607815.html
Copyright © 2011-2022 走看看