笔试知识点 网络安全_安全点
筆試知識(shí)點(diǎn) 網(wǎng)絡(luò)安全
安全點(diǎn)
Java應(yīng)用程序中有兩個(gè)邏輯線程組:
- 應(yīng)用程序線程執(zhí)行應(yīng)用程序邏輯
- 執(zhí)行GC的線程
在執(zhí)行諸如堆壓縮之類(lèi)的操作時(shí),GC線程會(huì)四處移動(dòng)一些對(duì)象,并且這些對(duì)象不能被任何應(yīng)用程序線程使用,因?yàn)樗鼈兊奈锢砦恢每赡軙?huì)發(fā)生變化。 這導(dǎo)致所謂的世界停頓。
停止世界(STW)暫停是指所有應(yīng)用程序線程均已停止。 它們對(duì)Java應(yīng)用程序性能具有最大的影響之一。 GC調(diào)整的基本概念是最大程度地減少這些停頓。 即使有GC算法之間的一些差異, 年輕一代 (小GC) 的收集過(guò)程中所有的人都停止了世界的停頓。
但是,應(yīng)用程序線程無(wú)法隨時(shí)停止。 這就是安全點(diǎn)起作用的地方。 安全點(diǎn)的以下定義來(lái)自HotSpot詞匯表 :
程序執(zhí)行期間的一點(diǎn),所有GC根都是已知的,并且所有堆對(duì)象的內(nèi)容都一致。 從全局角度來(lái)看,GC可以運(yùn)行之前,所有線程都必須在安全點(diǎn)處阻塞。
從本質(zhì)上講,安全點(diǎn)是指JVM處于可以被其他線程(尤其是GC線程)安全地查看和操作的狀態(tài)時(shí)的執(zhí)行點(diǎn)。
使用安全點(diǎn)時(shí),并非只有GC執(zhí)行停下來(lái)的暫停。 它們還可以在代碼取消優(yōu)化 ,熱交換或刷新代碼緩存期間使用。
根據(jù)Peter Lawrey的說(shuō)法 ,JVM放置安全點(diǎn)的位置沒(méi)有特別的規(guī)定。 它可能因Java版本而異,但是Internet上的一些消息來(lái)源聲稱它通常發(fā)生在調(diào)用返回或JIT編譯的代碼從循環(huán)回跳之后。
跟蹤安全點(diǎn)時(shí),有幾個(gè)標(biāo)記可能非常方便:
-XX:+PrintGCApplicationStoppedTime –打印所有安全點(diǎn)的暫停時(shí)間(不僅是GC的)
輸出將如下所示:
Application time: 0.2410613 seconds Total time for which application threads were stopped: 0.0511005 seconds-XX:+PrintSafepointStatistics
–XX:PrintSafepointStatisticsCount=1
上面的標(biāo)志打印出觸發(fā)暫停的操作的名稱以及一些其他信息(例如,事件發(fā)生時(shí)停止的線程數(shù)和時(shí)間戳)。
所有這些標(biāo)志將信息打印到標(biāo)準(zhǔn)輸出,而不是GC日志。
翻譯自: https://www.javacodegeeks.com/2017/08/safepoints.html
筆試知識(shí)點(diǎn) 網(wǎng)絡(luò)安全
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的笔试知识点 网络安全_安全点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 搜索器安卓版下载(搜索器安卓版)
- 下一篇: api网关和esb区别_具有ESB,AP