`
SilenceGG
  • 浏览: 109145 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

锁粗化测试

    博客分类:
  • JAVA
 
阅读更多

锁粗化

    可以用来降低锁定成本的优化是锁粗化(lock coarsening)。锁粗化就是把使用同一锁对象的相邻同步块合并的过程。如果编译器可以用锁省略清除锁定,那么它就可能用锁粗化降低开支。

     如:

      

     

   

 代码在循环中不断的需要获得对象锁,是要耗费资源的,我们进行下锁粗化

 

 

    

   

     

           在进行了锁粗化,时间变为由1254ms变为了2ms,其性能提升,由此可见,我们加锁的粒度要掌握好

      

  • 大小: 55.4 KB
  • 大小: 58.6 KB
分享到:
评论

相关推荐

    Java 锁粗化与循环问题

    使用 JMH 进行基准测试,可以看到 Hotspot 的锁粗化优化。在实验中,我们使用了 -XX:-UseBiasedLocking 禁用偏向锁,以避免启动时间过长。同时,我们也使用了 @CompilerControl(CompilerControl.Mode.DONT_INLINE) ...

    spinlocks:各种自旋锁实现和基准测试

    - **锁粗化**:合并连续的锁操作,减少锁的粒度。 - **死锁预防**:避免循环等待,使用超时或优先级反转策略。 在`spinlocks-master`这个项目中,可能包含了多种自旋锁的C语言实现和相应的基准测试代码。通过分析...

    jvm-anatomy-park-complete

    Hotspot,即Oracle提供的Java虚拟机的一个流行实现,拥有锁粗化优化(Lock Coarsening Optimization)。锁粗化是逃逸分析技术(Escape Analysis)的一个应用,其目的是减少多线程中锁的竞争和同步开销。它通过合并...

    Java synchronized那点事.doc

    这篇文档主要探讨了Java synchronized的锁机制,包括锁粗化、偏向锁、轻量级锁、重量级锁以及锁升级的过程。 1. 锁粗化: 锁粗化是编译器或运行时环境为了减少锁的使用频率,将多个连续的同步块合并成一个大的同步...

    sybase性能和调优:锁.pdf

    1. **表锁**: 对整个表加锁是最粗粒度的锁,它阻止其他事务访问表中的任何数据。 2. **数据页锁**: 在表的某个数据页上加锁,比表锁更细粒度,可以减少锁的范围。 3. **数据行锁**: 只锁定表中的特定行,这是最细...

    ib.rar_If...

    例如,可以使用锁消除(elimination)、锁粗化(coarsening)或锁细化(finement)来减少锁的使用,或者利用无锁编程(lock-free programming)和原子操作(atomic operations)来提高并发性能。 总的来说,"ib.rar...

    ISO 898-5 碳钢和合金钢紧固件的机械性能第5部分:规定硬度等级的固定螺钉和类似螺纹紧固件粗牙和粗牙螺纹.rar

    “ISO 898-5 碳钢和合金钢紧固件的机械性能第5部分:规定硬度等级的固定螺钉和类似螺纹紧固件粗牙和粗牙螺纹.pdf”是该标准的PDF文档,包含了详细的技术规定和测试方法。“文件打开使用方法.txt”则是指导用户如何...

    Java面试要点(适用于2年以上经验,1年亦可)

    6. 锁:CAS、乐观锁与悲观锁、数据库相关锁机制、分布式锁、偏向锁、轻量级锁、重量级锁、monitor、锁优化、锁消除、锁粗化、自旋锁、可重入锁、阻塞锁、死锁 7. happens-before、编译器指令重排和 CPU 指令重...

    数字锁相环实验报告.docx

    ### 数字锁相环实验知识点解析 #### 一、实验目的 本次实验旨在通过实际操作了解数字锁相环(DPLL)的基本工作原理及其关键性能指标,包括但不限于锁定状态、相位抖动特性、同步带与捕捉带等。通过实验加深对DPLL理论...

    java SE6性能白皮书(PDF中文)

    - **定义**:锁粗化是一种减少锁定和解锁次数的技术,通过合并连续的锁定操作来减少同步开销。 - **工作原理**:当锁释放后立即重新获取且期间未执行任何有意义的操作时,会合并这两个操作以减少不必要的同步开销。 ...

    Oracle Locking Survival Guide

    表级锁则更为粗粒度,会锁定整个表,适用于低并发但需要快速锁定整个表的场景。 1. 行级锁: - **共享锁(Shared Locks, S-Locks)**:允许读取一行数据,但不允许其他事务修改它。 - **独占锁(Exclusive Locks,...

    读书笔记-Java并发编程实战-基础篇

    10. 锁的粒度控制与性能权衡:过于粗粒度的锁会降低并发性,而过细粒度的锁又可能增加系统复杂性。在实践中,需要根据实际应用场景合理选择同步策略。 11. 无状态类的线程安全性:不包含任何字段、不引用其他类字段...

    路面工程施工测试题1.docx

    27. **嵌锁型粒料基层**:填隙碎石属于嵌锁型粒料基层,颗粒间相互嵌锁,提供较好的力学性能。 28. **粗粒式沥青混合料的判断标准**:通常是通过粒径分布和组成结构来判断,粗粒式沥青混合料含有较大粒径的集料。 ...

    改善Linux内核实时性方法的研究与实现.pdf

    然而,作为一款通用分时操作系统,Linux在实时性能方面存在不足,如核心不可抢占、中断延迟高、时钟粒度较粗等问题,这限制了其在实时系统和嵌入式控制领域的效能。随着技术的发展,越来越多的开发者致力于优化Linux...

    Java并发编程实战

    - **`synchronized`关键字:** 深入分析`synchronized`关键字的工作原理,包括它的锁升级机制、锁消除、锁粗化等特性。 - **`ReentrantLock`:** 比较`synchronized`与`ReentrantLock`的区别,了解后者提供的更多...

    第一节 SQLite简介.docx

    3. 高并发:由于 SQLite 仅仅提供了粒度很粗的数据锁,如读写锁,因此在每次加锁操作中都会有大量的数据被锁住,即使仅有极小部分的数据会被访问。 此外,SQLite 还有许多个性化特征,如零配置、没有独立的服务器...

    SQLite学习手册_中文全本

    3. 高并发支持不足:仅提供粗粒度的读写锁,不支持行级锁,导致在高并发情况下性能受限。 SQLite的特点可以总结为: 1. 一致性的文件格式:SQLite文件格式统一,便于数据移植,提供了高效的索引和事务处理,支持...

    SQLite学习手册-中文全本.pdf

    3. 高并发:由于SQLite提供的数据锁粒度较粗,不支持行级锁,导致并发性能较低。 从个性化特征来看,SQLite的零配置特性使得它不需要初始化配置文件,没有安装和卸载过程,也不需要创建用户和权限划分。在系统出现...

    指纹识别算法的matlab实现.doc

    通过对多个指纹样本的测试,评估算法的识别率和误识率,以评估其在实际应用中的性能。 第 6 章 结论 本文详细介绍了在 MATLAB 中实现指纹识别算法的过程,包括图像预处理、特征提取和特征匹配的各个步骤。实验证明...

Global site tag (gtag.js) - Google Analytics