著名科技博客博主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
分享到:
相关推荐
在性能对比测试中,实验结果表明,基于NIO的新服务器模型在处理高并发时,平均响应时间仅为2.09毫秒,且CPU占用率保持在68.5%的较低水平。与之相比,传统IO服务器模型在处理并发流量时,不仅性能上无法达到新模型的...
在对比Ice和Java Socket的性能时,我们可能会关注以下几点: 1. **性能效率**:Ice通常会比Java Socket更高效,因为它使用了优化的序列化和反序列化机制,减少了网络传输的数据量。此外,Ice的多线程和异步调用模型...
在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...
这个“java集合类性能测试源代码”很可能是为了对比不同集合类在特定场景下的性能表现,帮助开发者选择最适合的集合实现。下面将详细解释Java集合框架中的主要类和它们的性能特性。 1. **ArrayList与LinkedList** ...
Vue3是Vue.js的最新版本,提供了更好的性能和新特性,如Composition API、Teleport、Suspense等。Element Plus是基于Vue3的UI组件库,它包含一系列丰富的预设样式和组件,如表格、按钮、对话框等,方便快速构建前端...
在进行性能测试时,可以使用Java的`jmh`(Java Microbenchmark Harness)框架,这是一个专门为Java性能测试设计的工具,提供了准确的基准测试和结果分析。 例如,你可以创建一个简单的`jmh`测试,针对不同的序列化...
2. **基准测试**:在进行任何调优之前,先对当前系统的性能进行基准测试,以便后续对比改进效果。 3. **监控工具**:利用JMX(Java Management Extensions)、VisualVM等工具实时监控系统状态,收集必要的性能数据。...
11. **测试报告**:性能测试报告应包含测试目标、测试环境、测试方法、测试结果、性能指标对比和建议的优化措施,以便团队和利益相关者理解并采取行动。 通过深入分析这份文档,我们可以获得对Java软件性能测试的...
Java NIO(New IO)是Java 1.4引入的一个新模块,它是对传统IO(Input/Output)的扩展,提供了更高效的数据传输方式。在Java IO中,数据的读写是通过流进行的,而NIO则引入了通道(Channel)和缓冲区(Buffer)的...
在性能对比上,MyISAM通常在读取速度上有优势,因为它不需要管理事务和行级锁定。但在写入密集型应用中,InnoDB的行级锁定能提供更好的并发性能。此外,InnoDB的崩溃恢复能力比MyISAM强,因为它会记录事务日志,能够...
##### 4.3 性能对比 - **数据接收**: 测试结果显示,Netty在数据接收方面表现更优。 - **数据发送**: Mina和Netty在数据发送方面的性能差异不大。 - **数据库访问性能**: 由于Netty的高性能缓冲机制,其在数据库访问...
通过对比这三种实现方式的性能差异,结果显示使用Java自带缓冲类的实现方式在大多数测试中表现最优。特别是在处理大规模文件时,这种实现方式的性能优势更为明显。此外,研究还比较了这些Java实现与相应的C++程序的...
本文将基于一个性能测试案例,探讨Java反射在对象创建、属性设置和获取上的性能表现,并与常用的工具包如Apache Commons BeanUtils进行对比。 首先,测试主要关注三个环节:创建对象、设置属性值(setter)和获取...
对于有经验的开发者,研究新版本的API和特性可以帮助他们保持与时俱进,掌握最新的编程技巧和最佳实践。 总的来说,Java API文档是每个Java开发者必备的工具,它们不仅提供了详细的类库信息,还是学习和探索Java...
- 功能需求:新版本可能会引入新的特性或改进,根据项目需求选择最适合的版本。 - 兼容性:测试驱动与现有应用的兼容性,确保所有功能都能正常工作。 - 稳定性:高版本通常更稳定,但也可能存在新引入的bug,所以...
对比测试可能会揭示以下情况: 1. 对于大量数据的插入和查询,GreenDao通常会更快,因为它减少了反射操作。 2. ORMLite可能在初始化和设置上更快捷,因为它的配置相对简单。 3. 在内存占用方面,GreenDao由于其高效...
- **重点研究内容**:可能涉及Java的新特性、性能优化、并发编程、内存管理、安全特性等。 - **实现途径及方法**:可能讨论使用Java进行软件开发的具体策略,比如MVC架构、设计模式、开发工具等。 - **C#语言与...
"Java + 虹软人脸识别+对比"的主题涉及了几个关键知识点,包括Java编程语言的应用、虹软的人脸识别技术以及人脸对比的实现。 1. **Java编程语言**:Java是一种广泛使用的跨平台编程语言,以其“一次编写,到处运行...
7. 性能分析:通过JMH(Java Microbenchmark Harness)或其他性能测试工具,对比两个库在大量数据转换时的性能。 这个测试项目对于开发者来说,是一个了解和比较不同JSON库实用性的实践案例。通过这个项目,你可以...