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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

大屏可视化分配率是什么意思_什么是分配率?

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大屏可视化分配率是什么意思_什么是分配率? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大屏可視化分配率是什么意思

諸如“不可持續的分配率”和“您需要保持較低的分配率”之類的短語似乎僅屬于Java Champions的詞匯表。 復雜,恐怖并被魔術光環包圍。

經常發生的情況是,當您更仔細地查看概念時,魔術會隨著抽煙消失。 這篇文章試圖從提到的條款中刪除魔術。

什么是分配率?我為什么要關心?

分配率以每個時間單位分配的內存量來衡量。 通常以MB /秒表示,但如果您愿意,可以每年使用PB。 這就是全部–沒有魔術,只是您在一段時間內在Java代碼中分配的內存量。

但是,僅了解這一事實并不太有益。 如果您可以忍受我,我將指導您實際使用該概念。

面對高分配率可能會給您的應用程序性能帶來麻煩。 從實際的角度來看, 垃圾收集已成為瓶頸,從而浮出水面。 從硬件的角度來看,即使是商用硬件也可以維持每個內核數GB /秒的分配,因此,如果您的速率開始不超過1 GB /秒/核,您可以放心,您的硬件實際上不會成為瓶頸。

因此,在關注GC時,我們可以從一個在現實世界中也適用的類比開始-如果您創建很多東西,那么之后往往會面臨很多清理工作。 知道JVM是使用垃圾收集機制構建的,因此需要研究分配速率如何更改GC暫停的頻率或持續時間。

衡量分配率

讓我們從分配率的測量開始。 為此,我們通過為JVM指定-XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps標志來打開GC日志記錄。 JVM現在以與以下代碼段類似的方式開始記錄GC暫停:

0.291: [GC (Allocation Failure) [PSYoungGen: 33280K->5088K(38400K)] 33280K->24360K(125952K), 0.0365286 secs] [Times: user=0.11 sys=0.02, real=0.04 secs] 0.446: [GC (Allocation Failure) [PSYoungGen: 38368K->5120K(71680K)] 57640K->46240K(159232K), 0.0456796 secs] [Times: user=0.15 sys=0.02, real=0.04 secs] 0.829: [GC (Allocation Failure) [PSYoungGen: 71680K->5120K(71680K)] 112800K->81912K(159232K), 0.0861795 secs] [Times: user=0.23 sys=0.03, real=0.09 secs]

從上面的GC日志中, 我們可以將分配率計算為上一個收集完成后和下一個收集開始之前的年輕代大小之間的差。 使用上面的示例,我們可以例如提取以下信息:

  • JVM啟動后的291 ms ,創建了33,280K 個對象。 第一個次要的GC事件清除了Young一代,此后,Young一代還剩下5,088K個對象。
  • 發射后446毫秒,Young gen占用已增加到38,368K, 觸發了下一個GC,從而將Young Gen的占用減少到了5,120K
  • 發射后829毫秒,Young gen大小為71,680K ,GC再次將減小為5,120K

然后可以在下表中表示此數據,將分配率計算為年輕入住率的增量:

事件時間年輕之前年輕之后分配期間分配率
第一GC 291毫秒 33,280KB 5,088KB 33,280KB 114MB /秒
第二GC 446毫秒 38,368KB 5,120KB 33,280KB 215MB /秒
第三GC 829毫秒 71,680KB 5,120KB 66,560KB 174MB /秒
829毫秒 不適用 不適用 133,120KB 161MB /秒

有了這些信息,我們可以說該特定軟件在測量期間的分配速率為161 MB /秒。

分析影響

現在,有了這些信息,我們就可以了解分配速率的變化如何通過增加或減少GC暫停的頻率來影響應用程序吞吐量。 首先,您應該注意到只有Minor GC暫停清潔Young Generation會受到影響。 GC暫停清理舊一代的頻率或持續時間不受分配率的直接影響,而受晉升率的直接影響,我們將在下一篇文章中介紹這一術語。

知道我們只能專注于次要GC暫停時,我們接下來應該查看Young Generation內部的不同內存池。 當分配在Eden中進行時 ,我們可以立即查看Eden的大小如何影響分配率。 因此,我們可以有一個假設,即增加Eden的大小將減少較小的GC暫停頻率,從而使應用程序能夠維持更快的分配速率。

實際上,當使用-XX:NewSize -XX:MaxNewSize和-XX:SurvivorRatio參數運行具有不同Eden大小的相同示例時,我們可以看到分配率有兩倍的差異

  • 使用100M的Eden運行上述示例,將分配速率降低到100MB / sec以下
  • 將Eden大小增加到1GB,可以將分配速率增加到剛好低于200MB /秒。

如果您仍然想知道為什么這是正確的- 如果您不頻繁地停止GC的應用程序線程,則可以做更多有用的工作。 還發生了更多有用的工作來創建更多對象,從而支持增加的分配率

現在,在得出“更大的伊甸園更好”的結論之前,您應該注意到分配率可能并且可能與應用程序的實際吞吐量沒有直接關系。 這是一項技術指標,有助于提高吞吐量。 分配率可能會并且會影響您的次要GC暫停停止應用程序線程的頻率,但是要查看整體影響,您還需要考慮主要GC暫停并以應用程序的業務操作(不是MB / sec)來衡量吞吐量。提供。

翻譯自: https://www.javacodegeeks.com/2015/09/what-is-allocation-rate.html

大屏可視化分配率是什么意思

總結

以上是生活随笔為你收集整理的大屏可视化分配率是什么意思_什么是分配率?的全部內容,希望文章能夠幫你解決所遇到的問題。

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