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