`

自动装箱导致的性能问题

 
阅读更多

请看例子:

public class LongPerformanceTest {

	public static void main(String[] args) {
		Long sum = 0L;
		long start = System.currentTimeMillis();
		for (long i=0; i<Integer.MAX_VALUE; i++) {
			sum += i;
		}
		long end =System.currentTimeMillis();
		
		System.out.println("The calculation time is: " + (end -start)/1000);
		
		System.out.println(sum);
		
	}

}

 

只要将Long改成long,程序运行时间将从23s减少到5s左右.

 

结论: 变量反复的装箱拆箱会导致性能下降..一般来说除非只能使用装箱类型比如JAVA集合中元素的键,值等等,否则应该直接使用基本类型

分享到:
评论

相关推荐

    Java虚拟机

    第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果...

    值类型和引用类型的区别

    另外,如果实例会被频繁地用于Hashtable或者ArrayList之类的集合中,这些类会对其中的值类型变量进行装箱操作,这也 会导致额外的内存分配和内存拷贝操作,从应用程序性能方面来看,其实也不划算。 哦对了,上面提到...

    谷歌B-Tree的C++模板库

    红 - 黑树中的节点要求每个条目的指针(加1位),而B-树平均每个条目使用不到一个指针,从而导致显着地节省内存。例如,一组具有为每4个字节的组元素(第一个32位的操作系统)的16个字节的开销;的对应btree_set有一...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    / 259 10.2.2 解析与填充符号表 / 262 10.2.3 注解处理器 / 264 10.2.4 语义分析与字节码生成 / 264 10.3 Java语法糖的味道 / 268 10.3.1 泛型与类型擦除 / 268 10.3.2 自动装箱、拆箱与遍历循环 / 273 10.3.3...

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    20.11 异常处理的性能问题 20.12 约束执行区域(CER) 20.13 代码契约 第21章 自动内存管理(垃圾回收) 21.1 理解垃圾回收平台的基本工作原理 21.1.1 从托管堆分配资源 21.2 垃圾回收算法 21.3 垃圾回收与调试 ...

    CLR.via.C#.(中文第3版)(自制详细书签)

    20.11 异常处理的性能问题 20.12 约束执行区域(CER) 20.13 代码契约 第21章 自动内存管理(垃圾回收) 21.1 理解垃圾回收平台的基本工作原理 21.1.1 从托管堆分配资源 21.2 垃圾回收算法 21.3 垃圾回收与调试 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part3

    20.11 异常处理的性能问题 20.12 约束执行区域(CER) 20.13 代码契约 第21章 自动内存管理(垃圾回收) 21.1 理解垃圾回收平台的基本工作原理 21.1.1 从托管堆分配资源 21.2 垃圾回收算法 21.3 垃圾回收与调试 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    20.11 异常处理的性能问题 20.12 约束执行区域(CER) 20.13 代码契约 第21章 自动内存管理(垃圾回收) 21.1 理解垃圾回收平台的基本工作原理 21.1.1 从托管堆分配资源 21.2 垃圾回收算法 21.3 垃圾回收与调试 ...

    SDH传输网设计方案.doc

    这种抖动多发于网络边界处(SDH/PDH),其频率低、幅度大,会导致低 速信号在拆 出后性能劣化,这种抖动的滤除会相当困难。 3. 软件的大量使用对系统安全性的影响 SDH的一大特点是OAM的自动化程度高,这也意味着软件在...

    SDH传输网设计方案(1).doc

    这种抖动多发于网络边界处(SDH/PDH),其频率低、幅度大,会导致 低速信号在拆 出后性能劣化,这种抖动的滤除会相当困难。 3. 软件的大量使用对系统安全性的影响 SDH的一大特点是OAM的自动化程度高,这也意味着软件...

    RFID应用设计方案.doc

    ·一库:为防止数据丢失、数据灾难、数据崩溃,一卡通系统数据由高性能服务器统一存 贮。并可通过双机热备技术来确保数据安全。 ·一中心:为防止多次发卡,多次注销所带来的不便、数据不一致。在一卡多用的系统中, ...

    C#微软培训资料

    14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...

Global site tag (gtag.js) - Google Analytics