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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大屏可视化分配率是什么意思_什么是分配率? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

諸如“不可持續(xù)的分配率”和“您需要保持較低的分配率”之類(lèi)的短語(yǔ)似乎僅屬于Java Champions的詞匯表。 復(fù)雜,恐怖并被魔術(shù)光環(huán)包圍。

經(jīng)常發(fā)生的情況是,當(dāng)您更仔細(xì)地查看概念時(shí),魔術(shù)會(huì)隨著抽煙消失。 這篇文章試圖從提到的條款中刪除魔術(shù)。

什么是分配率?我為什么要關(guān)心?

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

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

面對(duì)高分配率可能會(huì)給您的應(yīng)用程序性能帶來(lái)麻煩。 從實(shí)際的角度來(lái)看, 垃圾收集已成為瓶頸,從而浮出水面。 從硬件的角度來(lái)看,即使是商用硬件也可以維持每個(gè)內(nèi)核數(shù)GB /秒的分配,因此,如果您的速率開(kāi)始不超過(guò)1 GB /秒/核,您可以放心,您的硬件實(shí)際上不會(huì)成為瓶頸。

因此,在關(guān)注GC時(shí),我們可以從一個(gè)在現(xiàn)實(shí)世界中也適用的類(lèi)比開(kāi)始-如果您創(chuàng)建很多東西,那么之后往往會(huì)面臨很多清理工作。 知道JVM是使用垃圾收集機(jī)制構(gòu)建的,因此需要研究分配速率如何更改GC暫停的頻率或持續(xù)時(shí)間。

衡量分配率

讓我們從分配率的測(cè)量開(kāi)始。 為此,我們通過(guò)為JVM指定-XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps標(biāo)志來(lái)打開(kāi)GC日志記錄。 JVM現(xiàn)在以與以下代碼段類(lèi)似的方式開(kāi)始記錄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日志中, 我們可以將分配率計(jì)算為上一個(gè)收集完成后和下一個(gè)收集開(kāi)始之前的年輕代大小之間的差。 使用上面的示例,我們可以例如提取以下信息:

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

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

事件時(shí)間年輕之前年輕之后分配期間分配率
第一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 /秒

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

分析影響

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

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

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

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

如果您仍然想知道為什么這是正確的- 如果您不頻繁地停止GC的應(yīng)用程序線(xiàn)程,則可以做更多有用的工作。 還發(fā)生了更多有用的工作來(lái)創(chuàng)建更多對(duì)象,從而支持增加的分配率

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

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

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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。