回收對象以提高性能

總覽

在上一篇文章中,我說過對象反序列化更快的原因是由于使用了回收對象。 由于兩個原因,這可能令人驚訝: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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373943.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373943.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373943.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jquery GET POST

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <head> <!--引入百度庫--> <script src"http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <title></title> <scrip…

C++高精度運算類bign (重載操作符)

大數據操作&#xff0c;有如下問題&#xff1a; 計算&#xff1a;45678913561232654213212314875231656511323132 456789135612326542132123*14875231656511323132 比較&#xff1a;7531479535511335666686565>753147953551451213356666865 ? long long類型存儲不了&…

oj系統格式錯誤_論文查重會不會檢查格式?【paperpp吧】

高等學校一般都會要求大學生在畢業時需要寫作畢業論文&#xff0c;并且會提前發出關于畢業論文的通知&#xff0c;在通知上一般會說明論文寫作的相關要求&#xff0c;其中就會規定論文的相關格式。當然&#xff0c;學校也會在通知中說明論文查重的相關事宜&#xff0c;那么論文…

JavaScript Cookies

相關&#xff1a;jquery-cookie cookie 是存儲于訪問者的計算機中的變量&#xff0c;常用來存儲用戶名字&#xff0c;密碼&#xff0c;日期&#xff0e; 示例&#xff1a; 1 document.cookie"usernameJohn Doe"; 2 document.cookie"usernameJohn Doe; expiresTh…

大數據 -- Hadoop集群搭建

Hadoop集群搭建 1.修改/etc/hosts文件 在每臺linux機器上&#xff0c;sudo vim /etc/hosts 編寫hosts文件。將主機名和ip地址的映射填寫進去。編輯完后&#xff0c;結果如下&#xff1a; 2.配置ssh&#xff0c;實現無密碼登錄 四臺虛擬機上&#xff0c;使用&#xff1a; ssh-ke…

通過示例休眠–第2部分(DetachedCriteria)

所以上次我們幫助正義聯盟有效地管理了他們的超級英雄。 今天&#xff0c;我們集中討論“復仇者聯盟”將如何使用冬眠的“分離標準”找出每個超級英雄的敵人&#xff0c;以保護他們的超級英雄。 您可以從此處下載工作示例。 在此示例中&#xff0c;我們僅考慮兩個實體。 復仇者…

2014編程之美初賽第二場

題目1 : 神奇的數列 時間限制:2000ms單點時限:1000ms內存限制:256MB描述 大神同學是一個熱愛數字的孩子&#xff0c;她無時無刻不在思考生活與數學的聯系。有一天&#xff0c;她發現其實公歷的設計是有講究的。 每4年就會多閏一天&#xff0c;每一百年又會有一年不是閏年&#…

usb大容量存儲設備驅動_usb無法識別怎么辦 如何解決usb識別故障【詳細步驟】...

usb無法識別怎么辦? 隨著計算機硬件飛速發展&#xff0c;外圍設備日益增多&#xff0c;鍵盤、鼠標等早已為人所共知&#xff0c;數碼相機、MP3隨身聽接踵而至&#xff0c;這么多的設備&#xff0c;如何接入個人計算機?USB就是基于這個目的產生的。USB是一個使計算機周邊設備連…

CSDN編程挑戰——《交替字符串》

交替字符串 題目詳情: 如果字符串str3能夠由str1和str2中的字符按順序交替形成&#xff0c;那么稱str3為str1和str2的交替字符串。例如str1"abc"&#xff0c;str2"def"&#xff0c;那么"adbecf", "abcdef", "abdecf", "…

hdu-5834 Magic boy Bi Luo with his excited tree(樹形dp)

題目鏈接&#xff1a; Magic boy Bi Luo with his excited tree Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1037 Accepted Submission(s): 298 Problem DescriptionBi Luo is a magic boy, he also has …

Java EE過去,現在和云7

最近的JavaOne 2011的一個突出主題是下一個主要的Java EE 7版本。 正如主題發言中所述&#xff0c;有關工作正在進行中。 它將包含我們已經從先行者那里知道的28個規范以及一些新規范。 沒人可以告訴您確切的號碼&#xff0c;因為EE 7僅在“及時”完成時才會接受新的規范。 這意…

python cnn識別圖像_笨方法學習CNN圖像識別(一)—— 圖片預處理

— 全文閱讀5分鐘 —在本文中&#xff0c;你將學習到以下內容&#xff1a;通過數據增強增加樣本量調整圖片大小便于網絡訓練前言圖像識別的準備工作就是要對我們拿到手的樣本圖片進行預處理&#xff0c;具體就是數據增強和調整圖片大小&#xff0c;這些準備工作都是為訓練網絡做…

隨機數發生器

很多人喜歡用 rand()%n產生區間 [0,n]內的一個隨機整數。姑且不論這樣產生的整數是否仍然均勻分布&#xff0c;當 n大于 RAND_MAX 時&#xff0c;此法并不能得到期望的結果。由于RAND_MAX 很可能只是32767這么小&#xff0c;在使用此法時應當小心。 #include "stdio.h&quo…

Request和Response詳解

轉自&#xff1a;http://zhidao.baidu.com/link?url8BI0cjlcFdBSJKHTZlpo874eqtbTJoZfrh3miQgM_05RvSER8skPiBc1wSPZtXT8OGGCHfVXFAzAosa6E5HBl_ 內置對象request&#xff1a;請求對象request.getParameter("名字") 獲得客戶端輸入的信息***************request.get…

將Maven與Ivy集成

問題是&#xff1a;您在Ivy存儲庫中&#xff08;只有那里&#xff09;有一些資源&#xff0c;您想在基于Maven的項目中使用這些資源。 可能的解決方案&#xff1a; 由于Ivy可以輕松使用Maven風格的存儲庫&#xff08;因此&#xff0c;您的Ivy客戶端可以繼續使用Ivy并進行一些微…

用python下載辭典

用python下載詞源詞典Etymoline Online Etymology Dictionary是最好的 English 詞源詞典&#xff0c;現在來說沒有之一。但是&#xff0c;一直在PC上查單詞有時不是很方便&#xff0c;遂就想怎么才能在手機上使用。現在的手機上的詞典&#xff0c;除了BlueDict、MDict之外&…

程序員都用什么來記錄知識_1年前的小五都用 Python 來做什么?

↑ 點擊上方 “凹凸數據” 關注 星標 ~ 每天更新&#xff0c;干貨不斷 (多圖預警)注&#xff1a;這是小五一年前在知乎的回答&#xff0c;當時還只有凹凸數讀一個公眾號&#xff0c;所以很多圖片都會帶有數讀或者知乎的水印。作為一個菜鳥數據分析師&#xff0c;只會sqlpytho…

CSDN編程挑戰——《高斯公式》

高斯公式 題目詳情: 高斯在上小學時發明了等差數列求和公式:12..1005050。現在問題在于給你一個正整數n&#xff0c;問你他可以表示為多少種連續正整數之和&#xff1f;&#xff08;自身也算&#xff09;。 輸入格式&#xff1a; 多組數據&#xff0c;每組數據一行&#xff0c…

SQL-行轉列(PIVOT)實例1

--未旋轉之前的查詢結果 select s.Name ShiftName,h.BusinessEntityID,d.Name as DpartmentName from HumanResources.EmployeeDepartmentHistory h inner join HumanResources.Department d on h.DepartmentIDd.DepartmentIDinner join HumanResources.Shift s on s.ShiftIDh…

將MongoDB與Morphia結合使用

在過去的幾年中&#xff0c; NoSQL數據庫&#xff08;例如CouchDB&#xff0c;Cassandra和MongoDB&#xff09;在不需要運行傳統RDBMS的語義和開銷的應用程序中得到了普及。 我不會進入選擇NoSQL數據庫的設計決策&#xff0c;因為其他人已經做得很好&#xff0c;但是我將結合我…