<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 閱讀(343) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲视频一区二区在线观看| 国产亚洲3p无码一区二区| 亚洲欧洲国产视频| 日韩版码免费福利视频| 亚洲精品福利网站| 成人免费观看一区二区| 亚洲国产成a人v在线| 免费观看的毛片大全| 亚洲av无码国产综合专区| 中文字幕无码免费久久99| 亚洲精品久久无码av片俺去也| 青青久在线视频免费观看| 亚洲精品乱码久久久久久蜜桃图片| 国产精品成人无码免费| 有码人妻在线免费看片| 亚洲精品国产V片在线观看 | 亚洲精品无码久久毛片| 久久久久女教师免费一区| 国产亚洲精AA在线观看SEE| 91精品国产免费| 亚洲91精品麻豆国产系列在线 | 日本一线a视频免费观看| 欧洲亚洲国产精华液| 亚洲伊人久久综合中文成人网| 中国videos性高清免费| 亚洲综合激情视频| 国产精品成人无码免费| 中文在线观看免费网站| 亚洲第一区视频在线观看| 四虎免费大片aⅴ入口| 久久久久国色AV免费观看| 亚洲另类小说图片| 亚洲成a人片在线观看久| 久草免费福利视频| 亚洲一本一道一区二区三区| 免费很黄很色裸乳在线观看| 成年丰满熟妇午夜免费视频| 99热在线精品免费全部my| 好先生在线观看免费播放| 手机永久免费的AV在线电影网| 国产精品亚洲成在人线|