<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    David.Turing's blog

     

    關于Lazy-UnLocking(Reservation Lock)對Java鎖的性能優(yōu)化

    JRockit使用了一種Lazy-Locking(也叫做Reservation Lock)的技術
    ?-XXlazyUnlocking
    我當初是在一個日本IBM實驗室的一篇2004年的博士論文上看到的概念,保留鎖提出的背景是針對Java Synchronized時候,某個Java對象被1+個線程Aquired Lock的序列通常是某個線程占多的現象,后來發(fā)現這是一個普遍現象,可能幾乎超過75%的鎖爭奪都是發(fā)生在某個線程上(包括遞歸鎖),從鎖獲取的序列上看,大部分可能是:
    T1 T1 T1 T1 T1 T1 T1 T1 T3 T1 T1 T1 T1 T2 T2 T1 T1 T1 T1
    (T1, T2, T3是嘗試獲取Java Lock)
    也就是,針對這種鎖現象,JVM設計人員開始采用Lazy-UnLocking的想法,即通過改變鎖設計,允許T1獲得鎖的時候,不需要CAS(Compare and Swap)原子性操作,這也是Lock Reservation(保留給T1)的由來;
    而T3需要獲取當前Java鎖的時候,需要一個代價較為昂貴Cancel T1 Reservation的動作才能獲得鎖。

    Java線程如果沒有頻繁Contention發(fā)生的時候,鎖延遲意味著不需要原子性操作便獲得對象,大大降低Java Lock在OS上的開銷。

    Sun也有類似的技術,其實是在JDK 5.0之后便引入
    -XX:+UseBiasedLocking
    Enables a technique for improving the performance of uncontended synchronization. An object is "biased" toward the thread which first acquires its monitor via a monitorenter bytecode or synchronized method invocation; subsequent monitor-related operations performed by that thread are relatively much faster on multiprocessor machines. Some applications with significant amounts of uncontended synchronization may attain significant speedups with this flag enabled; some applications with certain patterns of locking may see slowdowns, though attempts have been made to minimize the negative impact.?

    實際上,Sun采用的UseBiasedLocking是Initail Locker的方式,即第一個獲取鎖的線程,JVM會為它保留鎖(不需要原子性操作),從而,在其后,該線程獲取鎖等同于uncontended synchronization的效果。
    BEA JRockit R27.5提供的lazyUnlocking技術據說可以提升鎖性能超過1倍以上,從而簡直提高JVM性能達10%以上。
    延遲鎖(或者保留鎖)都是忌諱頻繁的多線程競爭鎖的情形,比如,如果一個Java對象按照下面的序列被T1,T2,T3線程獲取,則保留鎖的效果是很差的。
    T1,T2, T1, T2, T3, T1, T4, T3, T2......

    我個人非常喜歡保留鎖,可能是我有所偏見,事實上我接觸的公司內部的關于JRockit統(tǒng)計報告,都表明:
    1,大量的Java應用不會發(fā)生鎖競爭
    2,Java鎖一般都符合保留鎖的條件,即大部分情況下,在某個時間片內,都是鎖都是被某個線程獨占。

    posted on 2009-02-12 14:40 david.turing 閱讀(4720) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     

    導航

    統(tǒng)計

    常用鏈接

    留言簿(110)

    我參與的團隊

    隨筆分類(126)

    隨筆檔案(155)

    文章分類(9)

    文章檔案(19)

    相冊

    搜索

    積分與排名

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 三年片在线观看免费观看高清电影| 国产成人人综合亚洲欧美丁香花 | 中文字幕精品亚洲无线码二区| 国产精品亚洲专区无码唯爱网| 日本亚洲免费无线码| 亚洲精品中文字幕无乱码| 18禁止看的免费污网站| 亚洲人成网站影音先锋播放| 久久青草免费91线频观看不卡 | 亚洲综合小说久久另类区| 亚洲免费二区三区| 亚洲欧洲中文日产| 毛片免费观看视频| 国产偷国产偷亚洲清高APP| 亚洲精品无码av天堂| 中文字幕免费在线观看动作大片| 狠狠色伊人亚洲综合成人| 久9久9精品免费观看| 亚洲色精品aⅴ一区区三区| 国产VA免费精品高清在线| 亚洲精品无码MV在线观看| 亚洲精品免费观看| 亚洲制服丝袜在线播放| 在线永久免费观看黄网站| 国产精品永久免费| 久久精品国产亚洲av影院| 免费电视剧在线观看| 九九全国免费视频| 亚洲天堂在线播放| 国产一区二区三区免费视频 | 99久久亚洲精品无码毛片| 成人免费无码视频在线网站| 美女被免费网站在线视频免费| 亚洲中文字幕无码爆乳AV| 91精品国产免费入口| 亚洲色大18成人网站WWW在线播放| 亚洲成人高清在线| 91免费播放人人爽人人快乐| 美女扒开屁股让男人桶爽免费| 亚洲av不卡一区二区三区| 国产区卡一卡二卡三乱码免费|