`
- 浏览:
98407 次
- 性别:
- 来自:
北京
-
Synchronized性能优化:
- 粗化锁区域:通过扩大已存在锁,减少unlock和re-lock操作,降低所开销;默认启用,启用参数:-XX:+EliminateLocks
- 同步削减:通过逃逸分析,削减线程局部变量上的锁;启用参数:-XX:+DoEscapeAnalysis
- 偏袒锁机制:延长创建锁机制线程上锁的租约,知道有其他线程竞争锁时才释放(个人理解:相当于延长锁时间,减少释放、获取锁开销);默认启用,启用单数:-XX:+UseBiasedLocking
- 通过Adaptive Spinning提升同步性能:这个没有看明白;原文放在最下边,望大牛指导;
其他性能优化:
- 数组拷贝性能优化
- AMD和Intel64位平台支持大页堆;默认,Solaris默认启用
- 其他HotSpot编译器提升:1.client 编译器后台编译 2.更好的性能实现
Adaptive Spinning原文:
The Synchronized implementation also provides adaptive spinning, whereas ReentantLock currently does not. Adaptive spinning employs a two-phase spin-then-block strategy. Briefly, on multiprocessor systems a contended synchronized enter attempt will spin briefly before blocking in order to avoid context switching. Context switching is wasted work -- it doesn't contribute toward forward progress of the application. Worse, it causes TLBs and caches to be repopulated when the blocked thread eventually resumes. (This is the so-called "cache reload transient"). The spin duration varies as a function of the success/failure ratio of recent spin attempts on that same monitor, so the mechanism adapts automatically to parallelism, current system load, application modality, critical section length, etc. In addition, we avoid spinning for a lock where the current lock owner is itself blocked and unlikely to release the lock in a timely fashion. On solaris our checks can be more refined, determining if the target thread is ONPROC (running), for instance, via the contract private thr_schedctl interface. And it should go without saying that we spin "politely", using a backoff to avoid generating excessive and wasteful traffic on the coherency bus, as well as using PAUSE on IA32 and AMD64 platforms. We'll likely add spinning support to ReentrantLock in a future release.
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
1. **泛型类型推断**:Java 5引入了泛型,而JDK6进一步优化了这一特性,允许编译器进行类型推断,减少了冗余的类型参数。 2. **改进的Swing和AWT**:Swing组件得到了增强,例如JTable的性能提升,以及更好的布局...
总之,JDK6u45作为JDK 6的最后一个32位Windows版本,是开发者进行32位Java应用开发的重要工具,它的安全性和性能优化使其在当时受到了广泛的使用,尽管现在Java已经有了更新的版本,但对于还在运行Java 6的应用来说...
Java Development Kit...然而,对于新项目,推荐使用更新的JDK版本,因为它们包含了更多的安全更新和性能优化。对于仍在使用JDK 1.6的开发者,定期评估升级至更高版本的必要性是很重要的,以保持应用的安全性和性能。
在安装64位JDK 6时,通常会同时安装这个64位的JRE,以确保系统能够执行64位的Java程序。 总的来说,64位JDK 6是针对64位操作系统的Java开发和运行环境,它能提供更大的内存容量和潜在的性能提升,适合处理资源密集...
7. **Java 运行性能工具集**:包括 JConsole、VisualVM 等,用于监控和分析 Java 应用的性能。 ### JDK6 的主要特性与改进 1. **泛型的完全支持**:JDK6 对泛型进行了增强,使泛型成为语言的核心部分,提高了类型...
使用JDK6时,需要注意的是由于它已停止安全更新,可能存在安全风险。如果可能,应尽量升级到最新版本,以获得最新的安全补丁和性能优化。不过,对于那些依赖JDK6特性的项目,理解其工作原理和如何正确配置与使用这个...
Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了编译、调试和...不过,随着技术的发展,JDK的后续版本(如JDK8、JDK11等)带来了更多新特性和性能优化,对于新项目,建议使用较新版本的JDK。
JDK 6引入了许多新特性、增强和性能优化,其中包括: 1. **改进的Swing UI**:JDK 6对Swing库进行了升级,提供了更好的外观和感觉,支持PNG图像格式,以及更丰富的组件和布局管理器。 2. **动态语言支持**:JDK 6...
- **性能优化**:通过改进JVM的垃圾回收机制、编译器优化等,提高了程序运行效率。 - **API增强**:可能引入了新的API或对现有API进行扩展,以增强开发者的编程能力。 - **兼容性改进**:确保与更多的硬件和软件平台...
2. **动态语言支持**:JDK 6添加了`invokedynamic`指令,为运行时绑定和动态语言提供了更好的支持,这为Groovy、Ruby等动态语言在Java平台上的运行奠定了基础。 3. **Swing增强**:JDK 6对Swing组件进行了大量优化...
6. **兼容性和性能优化**:JDK 1.8对之前的版本做了大量兼容性测试,确保新旧代码可以无缝对接。同时,进行了多方面的性能优化,例如G1垃圾收集器的改进,提升了应用程序的响应速度和整体性能。 7. **安全性**:...
这些说明可能涵盖了如何设置开发环境、使用Java编译器(javac)将源代码编译为字节码、使用Java运行时环境(java.exe)执行.class文件、以及如何利用JDK附带的各种工具(如javadoc生成文档、jdb进行调试等)。...
- **性能优化**:JDK-6u21对虚拟机(JVM)进行了调整,提升了程序运行速度,尤其是对于多线程应用的优化。 - **类库增强**:可能包含了一些新的API或者对现有API的增强,以提供更多的功能和便利性。 3. **Windows...
2. **性能优化**:对JVM进行调整,提高运行效率。 3. **兼容性改进**:确保与新的硬件和操作系统更好地协同工作。 4. **API扩展**:可能添加新的API或增强现有API的功能。 **安装与使用** 在`jdk-6u43-windows-i...
6u43是Java 6的一个稳定版本,包含了一些安全修复和性能优化。 3. **文件"jdk-6u43-windows-i586.exe"**: 这是Java JDK 6的安装程序,适用于Windows操作系统,特别是32位(i586)系统。用户可以通过运行此执行...
标题“Ubuntu x64 JDK6”指的是适用于64位Ubuntu操作系统的Java Development Kit(JDK)版本6,更新45...最新的Java版本提供了更多的性能优化、安全增强和新特性,建议升级到更现代的JDK版本以确保系统安全和最佳性能。
8. **编译器优化**:JDK6的编译器Javac进行了优化,提升了编译速度和生成代码的质量。 9. **JavaScript引擎(Rhino)**:内置了JavaScript解释器,使得Java应用可以与JavaScript脚本交互。 10. **国际化改进**:...
JDK 6是Java历史上的一个重要版本,引入了许多新特性,提升了开发效率,优化了性能。这本书详细介绍了这些特性以及如何在实际开发中应用它们。 首先,JDK 6的核心在于Java语言的增强。它引入了泛型的完全支持,允许...
JDK 7 Update 80是该版本的第80次更新,同样会包括安全修复、性能优化以及可能的其他改进。对于仍在使用JDK 7的开发者来说,这是一个重要的更新,以保持其项目的安全性和稳定性。 **Linux环境**: 在Linux环境下...
**正文** JDK(Java Development Kit)是Oracle公司提供的用于开发和运行Java应用程序的重要工具集。JDK6,也称为Java SE(Standard Edition)6,是...然而,考虑到安全性和性能优化,建议逐步升级到更新的Java版本。