日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

回收对象以提高性能

發布時間:2023/12/3 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 回收对象以提高性能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
總覽

在上一篇文章中,我說過對象反序列化更快的原因是由于使用了回收對象。 由于兩個原因,這可能令人驚訝:1)相信如今創建對象是如此之快,無關緊要或與回收自己一樣快,2)默認情況下,任何序列化庫都不使用回收。

本文探討了有無回收對象的反序列化。 創建對象不僅較慢,而且還會通過將數據從CPU緩存中推出來減慢程序的其余部分。

盡管這涉及反序列化,但解析文本或讀取二進制文件也是如此,因為所執行的操作是相同的。

考試

在此測試中,我反序列化了1000個Price對象,而且還花費了復制一塊數據所需的時間。 該副本表示反序列化后應用程序可能必須執行的工作。

測試定時進行一百萬次,并對結果進行排序。 X軸顯示百分位計時。 例如,90%的值是90%的最差值(或10%的值更高)。

如您所見,反序列化必須在創建對象時花費更長的時間,但是有時會花費很多時間。 這也許并不令人驚訝,因為創建對象意味著要做更多的工作,并且可能被GC延遲。 但是,令人驚訝的是復制數據塊的時間增加了。 這表明不僅反序列化速度變慢,而且需要數據緩存的任何工作也因此變慢。 (這幾乎是您在實際應用程序中可能會執行的任何操作)
性能測試很少向您顯示對應用程序其余部分的影響。

更詳細

檢查較高的百分位數(最長的時間),您可以看到,如果反序列化必須等待GC,則性能始終很差。

在最壞的情況下,副本的性能也會大大提高。

編碼

回收示例代碼

參考: Vanilla Java博客上的JCG合作伙伴 Peter Lawrey 回收對象以提高性能 。

相關文章 :
  • Java Secret:加載和卸載靜態字段
  • C ++或Java,高頻交易哪個更快?
  • 如何在Java中獲得類似于C的性能
  • Java中的低GC:使用原語而不是包裝器
  • Java教程和Android教程列表

翻譯自: https://www.javacodegeeks.com/2011/11/recycling-objects-to-improve.html

總結

以上是生活随笔為你收集整理的回收对象以提高性能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。