著名科技博客博主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`测试,针对不同的序列化...
在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...
7. 性能分析:通过JMH(Java Microbenchmark Harness)或其他性能测试工具,对比两个库在大量数据转换时的性能。 这个测试项目对于开发者来说,是一个了解和比较不同JSON库实用性的实践案例。通过这个项目,你可以...
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组件库,它包含一系列丰富的预设样式和组件,如表格、按钮、对话框等,方便快速构建前端...
JNA依赖于Java的动态链接特性,它通过内存中的结构体来模拟参数传递,这种方式虽然方便,但牺牲了一定的性能。在测试中,JNA调用的总时间为572毫秒,明显高于JNI。 ### 性能差异原因 1. **数据转换成本**:JNI直接...
本报告详细阐述了使用JMeter对ActiveMQ进行性能测试的过程和结果,旨在评估ActiveMQ在JMS(Java消息服务)环境下的性能表现。JMeter作为一个强大的负载和性能测试工具,被广泛用于测试各种应用程序,包括消息中间件...
- **性能优化**:虽然Java在某些方面可能不如Cobol效率高,但可以通过优化算法和利用Java的并发特性来提升性能。 - **培训和支持**:团队成员可能需要学习新的编程语言和工具,提供必要的培训和支持至关重要。 总的...
本文将基于一个性能测试案例,探讨Java反射在对象创建、属性设置和获取上的性能表现,并与常用的工具包如Apache Commons BeanUtils进行对比。 首先,测试主要关注三个环节:创建对象、设置属性值(setter)和获取...
2. **基准测试**:在进行任何调优之前,先对当前系统的性能进行基准测试,以便后续对比改进效果。 3. **监控工具**:利用JMX(Java Management Extensions)、VisualVM等工具实时监控系统状态,收集必要的性能数据。...
通过以上介绍可以看出,从Tomcat 7到Tomcat 9,每个版本都在原有基础上进行了大量的改进和完善,不仅提升了性能和安全性,还增强了对最新Java EE标准的支持。对于不同类型的项目来说,选择合适的Tomcat版本是非常...
在性能对比上,MyISAM通常在读取速度上有优势,因为它不需要管理事务和行级锁定。但在写入密集型应用中,InnoDB的行级锁定能提供更好的并发性能。此外,InnoDB的崩溃恢复能力比MyISAM强,因为它会记录事务日志,能够...
#### 四、性能对比 ##### 1. 插入和删除 - **LinkedList** 在插入和删除操作上优于 `Vector` 和 `ArrayList`,尤其是对于大型列表,因为不需要移动元素。 - 对于 `Vector` 和 `ArrayList`,插入和删除操作的性能取...
##### 4.3 性能对比 - **数据接收**: 测试结果显示,Netty在数据接收方面表现更优。 - **数据发送**: Mina和Netty在数据发送方面的性能差异不大。 - **数据库访问性能**: 由于Netty的高性能缓冲机制,其在数据库访问...
通过这样的测试,我们可以了解 MyBatis Plus 在不同批量操作模式下的性能特性,为实际项目中的数据处理提供决策支持。在实际开发中,根据数据量、系统资源和业务需求选择合适的批量操作方式,可以有效地提升系统的...