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

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

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

    隨筆 - 53, 文章 - 0, 評論 - 3, 引用 - 0
    數據加載中……

    訪問Java對象屬性的性能模型。

    今天做了一個簡單的性能測試。比較訪問Java對象屬性的各種方法的性能差異。
    1. 直接訪問對象的屬性。
    2. 用方法訪問對象的屬性。
    3. 用Map來存儲和訪問。
    4. 反射-Field 訪問。
    5. 反射-Method訪問。

    重復100次,結果如下(單位為納秒)。
     * 100 field access, 14,806<br/>
     * 100 method access, 20,393<br/>
     * 100 map access, 66,489<br/>
     * 100 reflection field access, 620,190<br/>
     * 100 reflection method access, 1,832,356<br/>
    重復100000次,結果如下(單位為納秒)。
     *100000 field access, 2,938,362
     *100000 method access, 3,039,772
     *100000 map access, 10,784,052
     *100000 reflection field access, 144,489,034
     *100000 reflection method access, 37,525,719 <br/>
     
    由結果可見:
    1。getter/setter 的性能已經接近直接屬性訪問(大約慢50%),沒有必要擔心getter/setter的性能而采用直接屬性訪問。
    2。用Map代替POJO的代價大約是比getter/setter慢三倍。
    3。反射訪問比getter/setter慢50到150倍。慎用。追求動態性的時候也要注意不菲的性能代價。
    4。注意重復次數增加到100000次,方法訪問和屬性訪問的差距縮小;更有意思的是,反射的Method訪問比Field訪問快四倍。這主要是JIT的作用。

    該測試結果和原先的猜想基本符合。但是性能評估很容易得到片面的結論,如果有錯誤的地方,請大家不吝指正。謝謝。

    posted on 2010-04-09 15:57 InPractice 閱讀(337) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成网网址在线看| 亚洲精品字幕在线观看| 亚洲人成77777在线观看网| 99在线精品视频观看免费| 亚洲经典在线观看| 免费成人福利视频| 77777午夜亚洲| 成人免费视频国产| 国产亚洲人成在线影院| 亚洲日韩国产精品乱| 本道天堂成在人线av无码免费| 自拍偷自拍亚洲精品被多人伦好爽| 夜夜爽妓女8888视频免费观看| 久久久久噜噜噜亚洲熟女综合| jizz免费在线观看| 久久亚洲精品成人AV| 最近免费中文字幕大全视频| 亚洲精品无码中文久久字幕| 亚洲va中文字幕无码| 两性色午夜免费视频| 亚洲人成电影福利在线播放| 成年人视频免费在线观看| 亚洲一久久久久久久久| 亚洲精品成人区在线观看| 久久久久久久99精品免费观看| 亚洲人成网站在线播放影院在线 | 一级女性全黄久久生活片免费 | 国产亚洲老熟女视频| 少妇太爽了在线观看免费视频 | 国产成人亚洲精品无码AV大片| 亚洲一级片内射网站在线观看| 男女午夜24式免费视频| 亚洲伊人久久大香线蕉在观| 成人伊人亚洲人综合网站222| 国产一精品一av一免费爽爽| 亚洲一区二区久久| 国产亚洲精品无码专区| 国产a视频精品免费观看| 免费一级毛片在线播放视频免费观看永久| 国产av天堂亚洲国产av天堂| 国产va免费精品观看精品|