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