成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JVM 的秘密花園

開發 后端
在 Java 語言的世界里,因為是跨平臺的語言,而且每個人的設置并不相同,所以這對應到具體當前系統的臨時文件在哪,可以通過在代碼里獲取環境變量。

[[330708]]

軟件運行或者程序開發中,有時候會需要寫一些臨時文件,那寫這些臨時文件的目錄在哪呢?不同的軟件,不同的語言,以及不同的操作系統都有所區別。在 Java 語言的世界里,因為是跨平臺的語言,而且每個人的設置并不相同,所以這對應到具體當前系統的臨時文件在哪,可以通過在代碼里獲取環境變量。

System.getProperty("java.io.tmpdir") 來看。

這個目錄除了我們可以做為臨時目錄外,是不是我們不寫文件的時候就用不到了呢?

其實并不是。這個目錄相當于 JVM 的「秘密花園」,虛擬機會在這里記錄許多的信息。

例如每一個 java 的進程,都會在該臨時目錄下的 `hsperfdata_$USER(你自己的用戶名)`目錄生成一個進程ID對應的文件。

可能有人遇到這種問題,Java 程序可以正常執行,但是通過 jps 命令不能把進程給列出來。這種一般都是和 tmpdir 有關,直接查看是否有對應的寫權限,磁盤是否已滿。

以后你無論是執行jps 命令,還是其他監控診斷類的應用需要 attach 到JVM 的時候,如果需要提供Java 進程列表,都會從這兒讀取。而且這個進程文件并不是個空文件,里面有大量的內容。

所以我們常用的 jstat 以及我們以前文章中提到的JConsole、JVisualVM、SA 等工具,都會從這個文件這里讀內容,再進行展示。

文件的內容哪里來的呢?

這了支持對 JVM 的監控,虛擬機里特地開辟了一塊內存,用來存放這些性能統計相關的數據,統稱為 PerfData,這也是前面目錄稱為 hsperfdata的原因。隨著 Java 進程的不斷運行,那些不斷變化的監控值,虛擬機一般會通過共享內存的方式將內存與這個文件進行映射。并在數據變化的時候刷新到文件。

比如我們可以通過命令來查看加載類的信息,以及像gc 的一些數據

  1. jstat -class file:///<path>/hsperfdata/<pid> 
  2. jstat -gc file:///<path>/hsperfdata/<pid> 

還不過癮,可以試試這個命令,查看更多的監控信息

  1. jstat -J-Djstat.showUnsupported=true -snap  pid 

選項默認是開啟的,對性能的影響基本可以忽略,如果想要關閉,可以通過-XX:-UsePerData 來操作,

這個JVM參數官方說明如下

-XX:+UsePerfData

  • Enables the perfdata feature. This option is enabled by default to allow JVM monitoring and performance testing. Disabling it suppresses the creation of the hsperfdata_userid directories. To disable the perfdata feature, specify -XX:-UsePerfData.

這個文件就是我們通過外部監控工具 attach 到 JVM 的時候,讀到的那些內容。

這個秘密空間,在 JVM 內部是通過 PerfMemory 的模塊來統一管理的,負責創建、分配和銷毀。

正常情況下JVM 退出時會把該文件同步刪除,但如果異常kill 的情況,那文件會保留下來,一直留著。下次執行哪怕一個簡單的 jps 等命令時,只要啟動了 java 進程,都會判斷下該目錄下文件對應的進程是否存在,沒有就會刪除了。

本文轉載自微信公眾號「 Tomcat那些事兒」,可以通過以下二維碼關注。轉載本文請聯系 Tomcat那些事兒公眾號。

 

責任編輯:武曉燕 來源: Tomcat那些事兒
相關推薦

2024-09-02 09:06:34

2012-05-03 10:43:26

iOS

2024-03-14 09:00:00

2024-07-15 08:37:16

2018-10-18 12:42:24

2013-07-09 17:18:52

LAMP架構網站建設

2009-08-27 08:50:17

2023-07-31 07:25:27

2017-05-16 09:56:44

2020-08-21 13:33:01

區塊鏈計算機系統

2019-12-05 12:11:37

DevOps開發應用程序

2020-04-15 13:55:28

Kubernetes容器

2021-08-11 22:18:43

Socket函數監聽

2011-08-29 09:59:26

2020-09-15 12:57:46

C 語言浮點數內存

2013-11-27 11:04:05

震網病毒震網Stuxnet

2020-02-28 07:46:05

物聯網產品開發IOT

2012-04-08 14:47:52

iPad

2019-10-24 10:04:33

技術債務開發軟件

2011-01-05 15:29:03

職場
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久最新网址 | 狠狠久久综合 | 国产精品视频一二三区 | 97色免费视频 | av在线免费播放 | 中文字幕高清在线 | 国产日韩欧美一区 | 欧美在线观看一区 | 性天堂网| 龙珠z在线观看 | 国产精品theporn| 免费观看色 | 午夜久久久久久久久久一区二区 | 欧美亚洲高清 | 久久久www成人免费无遮挡大片 | 精品一区二区三区在线观看 | 夜夜骑av | 337p日本欧洲亚洲大胆 | 国产精品污污视频 | 国产精品一区二区久久久久 | 神马久久春色视频 | 91久久久久 | 免费久久精品视频 | 日韩精品一区二区三区第95 | a黄毛片| 老司机深夜福利网站 | 美女毛片| 99久久精品免费视频 | av在线免费播放 | h视频免费看 | 国产在线中文字幕 | 中文字幕精品一区二区三区精品 | 亚洲人成人一区二区在线观看 | 精品久久久久久久人人人人传媒 | 国产成人小视频 | 国产一级视频免费播放 | 婷婷色国产偷v国产偷v小说 | 国产真实精品久久二三区 | 狠狠躁18三区二区一区 | 亚洲精品国产综合区久久久久久久 | 欧美精品在线免费观看 |