`
songzhan
  • 浏览: 240484 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java 7新特性及各版本性能对比测试(转)

 
阅读更多

著名科技博客博主Taranfx撰文:Java 1.4到1.5的修改很大,在编译compile-time 方面提升很大,Java 6在运行时runtime智能上做了优化,Java 7的主要改进:模块化。我们分析一下Java 7的主要修改:

  * Modularization 模块化– JSR 294 或者 Project Jigsaw

  * JVM 对动态语言的支持

  * 更多新的 I/O APIs 即将完成,包括真正的异步I/O 和最终的真实的文件系统 file system API – JSR 203

  * 对XML本地语言支持. (可能的probable)

  * Safe rethrow – 允许catch捕获语句让编译器更加聪明的知道基于什么情况下重新throw什么内容。

  * Null dereference expressions – Null 和 ‘?’ syntax 比较,语法类似 Groovy… 让开发者避免过多的空值验证。

  * 更好的类型推断 Better type inference

  * 多重捕获Multi-catch

  * JSR 296 – Swing 应用框架 application framework – 这方面需要更简单和简洁。

  “小的”sun方面的修改有:

  * 升级的类加载class loader 架构;

  * XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project项目;

  * Swing 更新 – JXLayer, DatePicker, CSS styling 等;

  * JavaFX

  sun方面“快速”的修改,主要是性能更新:

  * 并发方面的细微调整 concurrency tweaks (JSR 166),更好的支持Multicore

  * G1 垃圾收集器Garbage collector - 带来更小的中断时间,有希望替代 CMS (Concurrent mark sweep) GC

  * 64 bit VM的压缩指针Compressed pointer

  * MVM-lite – 多个虚拟机能够独立运行应用和允许用kill -9杀死java应用。

  我测试了Java 1.5,1.6,1.7的性能

  JDK 7版本:

  > java -version   
  java version "1.7.0-ea"  
  Java(TM) SE Runtime Environment (build 1.7.0-ea-b66)   
  Java HotSpot(TM) Client VM (build 16.0-b06, mixed mode, sharing)  

  测试环境:Dell D630 笔记本运行 Windows 7 RTM (32 bit) , Intel Core 2 CPU (2.4GHz), 3GB RAM。

  测试数据:

  Test 1. 添加5百万string 数值。

  Test 2. 5百万 ArrayList 数据插入,使用Test 1数据。

  Test 3. 5百万键值的HashMap ,每个键-值对通过并发线程计算,测试并发能力。

  Test 4. 打印5百万 ArrayList 数值到文件,并且回读。

  四次测试结果如下:

  结论是:

  Java 5 <=== 18% faster=== < Java 6 < ===46% faster===< Java 7

 


Java 7
 Java走向分裂源于Java 7的到来?
 Java 7新特性:自动化资源管理
 Oracle发布首个Java 7闭包版本
 走进Java 7模块系统
 性能监测工具优化Java应用程序
 Oracle对Java虚拟化支持策略新变化
 Java 7:Switch和OCP认证
 Java 7特性:如何在项目Coin中更精确的重新抛出异常

 

原文出处:http://tech.it168.com/a2009/0901/672/000000672269.shtml

分享到:
评论

相关推荐

    开源的Android性能测试工具APT

    APT提供了CPU利用率实时曲线图 多维度内存实时曲线图 方便竞品对比测试和定位内存泄露问题;支持进程内存构成分析 支持手工或超过阈值时自动转储 Dump 详细堆内存对象信息 支持多进程 支持生成和导出常用格式的的...

    自动化测试面试题总结.docx

    3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,...

    java 编程入门思考

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖...

    Java初学者入门教学

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖...

    java联想(中文)

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖...

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

    前 言 致 谢 第一部分 走近Java 第1章 走近Java / 2 1.1 概述 / 2 1.2 Java技术体系 / 3 1.3 Java发展史 / 5 1.4 展望Java技术的未来 / 9 1.4.1 模块化 / 9 1.4.2 混合语言 / 9 1.4.3 多核并行 / 11 ...

    JAVA_Thinking in Java

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖...

    Thinking in Java简体中文(全)

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖...

    Thinking in Java 中文第四版+习题答案

    10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似...

    Java应用软件的安全加固技术研究_刘伟伟.caj

    应用程序的性能和占用空间指标,依次进行对比。除此之外,本文还 从软件工程的角度对两种混淆方案的混淆强度进行了计算,实验结果 表明本文提出的混淆方案除了各自应有的特性之外,还兼具增强内聚 性、...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖...

    Think in Java(中文版)chm格式

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 ...

    Java2核心技术.part5

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖...

    Java开源的下一代社区平台Symphony.zip

    对于测试帖,可以使用 Sandbox 机制:带有 Sandbox 标签的帖子将视为测试帖,不会显示在首页或是某领域内,只会展现在发帖者自己的帖子列表中。 人性化的回帖交互 实时呈现:回帖提交后其他浏览者可以不刷新...

    Java2核心技术.part3

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Java2核心技术.part1

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝性 1. 2.6...

    Java2核心技术.part6

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Java2核心技术.part4

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

    Java2核心技术.part2

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

Global site tag (gtag.js) - Google Analytics