當前位置:首頁 » 存儲配置 » 如何查看jvm配置項有哪些

如何查看jvm配置項有哪些

發布時間: 2023-02-19 10:41:20

1. 怎麼查看GC 及jvm配置

JVisualVM是JDK 6 update 7之後推出的一個工具,它類似於JProfiler的工具,基於此工具可查看內存的消耗情況、線程的執行狀況及程序中消耗CPU、內存的動作。

2. jmap命令詳解----查看JVM內存使用詳情

jmap命令是一個可以輸出所有內存中對象的工具,甚至可以將VM 中的heap,以二進制輸出成文本。

列印出某個java進程(使用pid)內存內的,所有『對象』的情況(如:產生那些對象,及其數量)。

64位機上使用需要使用如下方式:

就是替換[option]位置的參數

1、 -mp:[live,]format=b,file=<filename> 使用hprof二進制形式,輸出jvm的heap內容到文件=. live子選項是可選的,假如指定live選項,那麼只輸出活的對象到文件。

命令:

結果:

即可在/root目錄打開myjmapfile.txt文件。

當然,file=後面也可以指定文件存放的目錄,就可以在指定目錄查看文件了。

2、 -finalizerinfo 列印正等候回收的對象的信息

命令:

結果:
Number of objects pending for finalization: 0 (等候回收的對象為0個)

3、 -heap 列印heap的概要信息,GC使用的演算法,heap(堆)的配置及JVM堆內存的使用情況.

命令:

結果:

4、 -histo[:live] 列印每個class的實例數目,內存佔用,類全名信息. VM的內部類名字開頭會加上前綴」*」. 如果live子參數加上後,只統計活的對象數量。

命令:

採用jmap -histo pid>a.log日誌將其保存,在一段時間後,使用文本對比工具,可以對比出GC回收了哪些對象。

jmap -mp:format=b,file=outfile 3024可以將3024進程的內存heap輸出出來到outfile文件里,再配合MAT(內存分析工具)。

5、 -permstat 列印classload和jvm heap長久層的信息. 包含每個classloader的名字,活潑性,地址,父classloader和載入的class數量. 另外,內部String的數量和佔用內存數也會列印出來.

命令:

通過jmap和jvm之間進行通信,有兩種實現方式:attach 和 SA。

attach方式,簡單來說就是客戶端和服務端之間的通信,客戶端發送請求,主要邏輯在服務端執行,jmap相當於客戶端,JVM相當於服務端。

在JVM中,有一個叫"Attach Listener"的線程,專門負責監聽attach的請求,並執行對應的操作。

比如現在執行"jmap -histo:live 5409",一步一步的實現如下:
1、在Jmap.java類的main函數中,對參數進行解析。
2、解析出來參數中有「-histo:live」,則執行histo方法:

"jmap -mp"實現的原理和"jmap -histo"類似,都是通過attach的方式實現,
attach API的實現方式是:
1、客戶端連接到目標JVM,向其發出一個類似「inspectheap」命令;
2、目標JVM接收到命令,執行JVM內相關函數,將收集到的結果以文本形式返回;
3、客戶端接收到返回的文本並將其顯示出來

假如執行"jmap -heap 5409",就不會使用attach方式實現了。

在參數解析中,如果參數是"-heap|-heap:format=b|-permstat|-finalizerinfo"中的一種,或者添加了"-F",比如"jmap -histo -F 5409",則使用SA的方式。

SA方式,和attach方式不同的是,相關的主要邏輯都在SA中實現,從JVM中獲取數據即可。

可以大概看下"jmap -heap"的實現,對應的實現類是"HeapSummary",內部通過BugSpotAgent工具類attach到目標VM

執行jmap -heap有些時候可能會導致進程變T,一般是有一個線程在等信號量,這時會block住其它所有線程,可以執行kill -CONT <pid>進行恢復,不過還是強烈建議別執行這個命令。

3. 如何查看GC 及jvm配置

java雖然是自動回收內存,但是應用程序,尤其伺服器程序最好根據業務情況指明內存分配限制。否則可能導致應用程序宕掉。

舉例說明含義:
-Xms128m
表示JVM Heap(堆內存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆內存)最大允許的尺寸256MB,按需分配。

說明:如果-Xmx不指定或者指定偏小,應用可能會導致java.lang.OutOfMemory錯誤,此錯誤來自JVM不是Throwable的,無法用try...catch捕捉。

PermSize和MaxPermSize指明虛擬機為java永久生成對象(Permanate generation)如,class對象、方法對象這些可反射(reflective)對象分配內存限制,這些內存不包括在Heap(堆內存)區之中。

-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允許分配尺寸,按需分配
過小會導致:java.lang.OutOfMemoryError: PermGen space

MaxPermSize預設值和-server -client選項相關。
-server選項下默認MaxPermSize為64m
-client選項下默認MaxPermSize為32m

經驗:
1、慎用最小限制選項Xms,PermSize已節約系統資源。

=========================================================

近期研究對jvm的內存使用情況進行監控,因此對觀察虛擬機的內存使用方法做了一些收集,對jvm的參數設置了解了一下:

幾個基本概念:

PermGen space:全稱是Permanent Generation space,即永久代。就是說是永久保存的區域,用於存放Class和Meta信息,Class在被Load的時候被放入該區域,GC(Garbage Collection)應該不會對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。
Heap space:存放Instance。Java Heap分為3個區,Young即新生代,Old即老生代和Permanent。Young保存剛實例化的對象。當該區被填滿時,GC會將對象移到Old區。Permanent區則負責保存反射對象。

幾個參數設置的意義:

xms/xmx:定義YOUNG+OLD段的總尺寸,ms為JVM啟動時YOUNG+OLD的內存大小;mx為最大可佔用的YOUNG+OLD內存大小。在用戶生產環境上一般將這兩個值設為相同,以減少運行期間系統在內存申請上所花的開銷。
NewSize/MaxNewSize:定義YOUNG段的尺寸,NewSize為JVM啟動時YOUNG的內存大小;MaxNewSize為最大可佔用的YOUNG內存大小。在用戶生產環境上一般將這兩個值設為相同,以減少運行期間系統在內存申請上所花的開銷。
PermSize/MaxPermSize:定義Perm段的尺寸,PermSize為JVM啟動時Perm的內存大小;MaxPermSize為最大可佔用的Perm內存大小。在用戶生產環境上一般將這兩個值設為相同,以減少運行期間系統在內存申請上所花的開銷。
SurvivorRatio:設置YOUNG代中Survivor空間和Eden空間的比例

申請一塊內存的過程:

A. JVM會試圖為相關Java對象在Eden中初始化一塊內存區域
B. 當Eden空間足夠時,內存申請結束。否則到下一步
C. JVM試圖釋放在Eden中所有不活躍的對象(這屬於1或更高級的垃圾回收);釋放後若Eden空間仍然不足以放入新對象,則試圖將部分Eden中活躍對象放入Survivor區/OLD區
D. Survivor區被用來作為Eden及OLD的中間交換區域,當OLD區空間足夠時,Survivor區的對象會被移到Old區,否則會被保留在Survivor區
E. 當OLD區空間不夠時,JVM會在OLD區進行完全的垃圾收集(0級)
F. 完全垃圾收集後,若Survivor及OLD區仍然無法存放從Eden復制過來的部分對象,導致JVM無法在Eden區為新對象創建內存區域,則出現」out of memory錯誤」

我們的一種resin伺服器的jvm參數設置:

「-Xmx2000M -Xms2000M -Xmn500M -XX:PermSize=250M -XX:MaxPermSize=250M -Xss256K -XX:+DisableExplicitGC -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:=60 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log」

是一種典型的響應時間優先型的配置。

Java中有四種不同的回收演算法,對應的啟動參數為
–XX:+UseSerialGC
–XX:+UseParallelGC
–XX:+UseParallelOldGC
–XX:+UseConcMarkSweepGC

1. Serial Collector
大部分平台或者強制 java -client 默認會使用這種。
young generation演算法 = serial
old generation演算法 = serial (mark-sweep-compact)
這種方法的缺點很明顯,stop-the-world, 速度慢。伺服器應用不推薦使用。

2. Parallel Collector
linux x64上默認是這種,其他平台要加 java -server 參數才會默認選用這種。
young = parallel,多個thread同時
old = mark-sweep-compact = 1
優點:新生代回收更快。因為系統大部分時間做的gc都是新生代的,這樣提高了throughput(cpu用於非gc時間)
缺點:當運行在8G/16G server上old generation live object太多時候pause time過長

3. Parallel Compact Collector (ParallelOld)
young = parallel = 2
old = parallel,分成多個獨立的單元,如果單元中live object少則回收,多則跳過
優點:old old generation上性能較 parallel 方式有提高
缺點:大部分server系統old generation內存佔用會達到60%-80%, 沒有那麼多理想的單元live object很少方便迅速回收,同時compact方面開銷比起parallel並沒明顯減少。

4. Concurent Mark-Sweep(CMS) Collector
young generation = parallel collector = 2
old = cms
同時不做 compact 操作。
優點:pause time會降低, pause敏感但CPU有空閑的場景需要建議使用策略4.
缺點:cpu佔用過多,cpu密集型伺服器不適合。另外碎片太多,每個object的存儲都要通過鏈表連續跳n個地方,空間浪費問題也會增大。

內存監控的方法:

1. jmap -heap pid
查看java 堆(heap)使用情況

using thread-local object allocation.
Parallel GC with 4 thread(s) //GC 方式

Heap Configuration: //堆內存初始化配置
MinHeapFreeRatio=40 //對應jvm啟動參數-XX:MinHeapFreeRatio設置JVM堆最小空閑比率(default 40)
MaxHeapFreeRatio=70 //對應jvm啟動參數 -XX:MaxHeapFreeRatio設置JVM堆最大空閑比率(default 70)
MaxHeapSize=512.0MB //對應jvm啟動參數-XX:MaxHeapSize=設置JVM堆的最大大小
NewSize = 1.0MB //對應jvm啟動參數-XX:NewSize=設置JVM堆的『新生代』的默認大小
MaxNewSize =4095MB //對應jvm啟動參數-XX:MaxNewSize=設置JVM堆的『新生代』的最大大小
OldSize = 4.0MB //對應jvm啟動參數-XX:OldSize=:設置JVM堆的『老生代』的大小
NewRatio = 8 //對應jvm啟動參數-XX:NewRatio=:『新生代』和『老生代』的大小比率
SurvivorRatio = 8 //對應jvm啟動參數-XX:SurvivorRatio=設置年輕代中Eden區與Survivor區的大小比值
PermSize= 16.0MB //對應jvm啟動參數-XX:PermSize=:設置JVM堆的『永生代』的初始大小
MaxPermSize=64.0MB //對應jvm啟動參數-XX:MaxPermSize=:設置JVM堆的『永生代』的最大大小

Heap Usage: //堆內存分步
PS Young Generation
Eden Space: //Eden區內存分布
capacity = 20381696 (19.4375MB) //Eden區總容量
used = 20370032 (19.426376342773438MB) //Eden區已使用
free = 11664 (0.0111236572265625MB) //Eden區剩餘容量
99.94277218147106% used //Eden區使用比率
From Space: //其中一個Survivor區的內存分布
capacity = 8519680 (8.125MB)
used = 32768 (0.03125MB)
free = 8486912 (8.09375MB)
0.38461538461538464% used
To Space: //另一個Survivor區的內存分布
capacity = 9306112 (8.875MB)
used = 0 (0.0MB)
free = 9306112 (8.875MB)
0.0% used
PS Old Generation //當前的Old區內存分布
capacity = 366280704 (349.3125MB)
used = 322179848 (307.25464630126953MB)
free = 44100856 (42.05785369873047MB)
87.95982001825573% used
PS Perm Generation //當前的 「永生代」 內存分布
capacity = 32243712 (30.75MB)
used = 28918584 (27.57891082763672MB)
free = 3325128 (3.1710891723632812MB)
89.68751488662348% used

=====================================================================

jps
-q只輸出進程ID,而不輸出類的短名稱
-m用於輸出傳遞給Java進程(主函數)的參數
-l完整路徑
-v顯示傳遞給jvm的參數

4. 如何查看java虛擬機堆內存的參數值

今天在載入一幅圖片時,eclipse報出如下錯誤:
「Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 」
google了一下原來是圖片太大了。可以設置jvm堆的最大值來解決。

首先, 打開Eclipse軟體,選擇菜單欄run,在二級菜單中選擇 Debug Configurations,然後:在彈出的窗口中選擇(x)=arguments選項卡,VM arguments中輸入所需要的內存最大佔用量,比如輸入-Xmx800m即可。

以下詳細的介紹下jvm的幾個參數:
「MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.」意思是說當前只有小於5%的非堆內存是空閑的。所以我們只要將這個值設置大一些就可以了。
提示中給出了設置的參數:
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
這里有幾個問題:
1. 各個參數的含義什麼?
2. 為什麼有的機器我將-Xmx和-XX:MaxPermSize都設置為512M之後Eclipse可以啟動,而有些機器無法啟動?
3. 為何將上面的參數寫入到eclipse.ini文件Eclipse沒有執行對應的設置?
下面我們一一進行回答
1. 各個參數的含義什麼?
參數中-vmargs的意思是設置JVM參數,所以後面的其實都是JVM的參數了,我們首先了解一下JVM內存管理的機制,然後再解釋每個參數代表的含義。
堆(Heap)和非堆(Non-heap)內存
按照官方的說法:「Java 虛擬機具有一個堆,堆是運行時數據區域,所有類實例和數組的內存均從此處分配。堆是在 Java 虛擬機啟動時創建的。」「在JVM中堆之外的內存稱為非堆內存(Non-heap memory)」。可以看出JVM主要管理兩種類型的內存:堆和非堆。簡單來說堆就是Java代碼可及的內存,是留給開發人員使用的;非堆就是JVM留給自己用的,所以方法區、JVM內部處理或優化所需的內存(如JIT編譯後的代碼緩存)、每個類結構(如運行時常數池、欄位和方法數據)以及方法和構造方法的代碼都在非堆內存中。
堆內存分配
JVM初始分配的內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4。默認空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70% 時,JVM會減少堆直到-Xms的最小限制。因此伺服器一般設置-Xms、-Xmx相等以避免在每次GC 後調整堆的大小。
非堆內存分配
JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。
JVM內存限制(最大值)
首先JVM內存限制於實際的最大物理內存(廢話!呵呵),假設物理內存無限大的話,JVM內存的最大值跟操作系統有很大的關系。簡單的說就32位處理器雖然可控內存空間有4GB,但是具體的操作系統會給一個限制,這個限制一般是2GB-3GB(一般來說Windows系統下為1.5G-2G,Linux系統下為2G-3G),而64bit以上的處理器就不會有限制了。
2. 為什麼有的機器我將-Xmx和-XX:MaxPermSize都設置為512M之後Eclipse可以啟動,而有些機器無法啟動?
通過上面對JVM內存管理的介紹我們已經了解到JVM內存包含兩種:堆內存和非堆內存,另外JVM最大內存首先取決於實際的物理內存和操作系統。所以說設置VM參數導致程序無法啟動主要有以下幾種原因:
1) 參數中-Xms的值大於-Xmx,或者-XX:PermSize的值大於-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的總和超過了JVM內存的最大限制,比如當前操作系統最大內存限制,或者實際的物理內存等等。說到實際物理內存這里需要說明一點的是,如果你的內存是1024MB,但實際系統中用到的並不可能是1024MB,因為有一部分被硬體佔用了。
3. 為何將上面的參數寫入到eclipse.ini文件Eclipse沒有執行對應的設置?
那為什麼同樣的參數在快捷方式或者命令行中有效而在eclipse.ini文件中是無效的呢?這是因為我們沒有遵守eclipse.ini文件的設置規則:
參數形如「項 值」這種形式,中間有空格的需要換行書寫,如果值中有空格的需要用雙引號包括起來。比如我們使用-vm C:\Java\jre1.6.0\bin\javaw.exe參數設置虛擬機,在eclipse.ini文件中要寫成這樣:
-vm
C:\Java\jre1.6.0\bin\javaw.exe
按照上面所說的,最後參數在eclipse.ini中可以寫成這個樣子:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
實際運行的結果可以通過Eclipse中「Help」-「About Eclipse SDK」窗口裡面的「Configuration Details」按鈕進行查看。
另外需要說明的是,Eclipse壓縮包中自帶的eclipse.ini文件內容是這樣的:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
其中–launcher.XXMaxPermSize(注意最前面是兩個連接線)跟-XX:MaxPermSize參數的含義基本是一樣的,我覺得唯一的區別就是前者是eclipse.exe啟動的時候設置的參數,而後者是eclipse所使用的JVM中的參數。其實二者設置一個就可以了,所以這里可以把–launcher.XXMaxPermSize和下一行使用#注釋掉。

5. JVM性能調優(2) —— 內存設置和查看GC日誌

1)JVM內存分配有如下一些參數:

一般 -Xms 和 -Xmx 設置一樣的大小,-XX:MetaspaceSize 和 -XX:MaxMetaspaceSize 設置一樣的大小。-Xms 等價於 -XX:InitialHeapSize,-Xmx等價於-XX:MaxHeapSize;-Xmn等價於-XX:MaxNewSize。

2)在IDEA中可以按照如下方式設置JVM參數:

3)命令行啟動時可以按照如下格式設置:

1)設置GC參數:

可以在啟動時加上如下參數來查看GC日誌:

例如,我在IDEA中添加了如下JVM啟動參數:

啟動程序之後列印出了如下的一些日誌:

從第三行 CommandLine flags 可以得到如下的信息:

2)查看默認參數:

如果要查看JVM的默認參數,就可以通過給JVM加列印GC日誌的參數,就可以在GC日誌中看到JVM的默認參數了。

還可以在啟動參數中添加 -XX:+PrintFlagsFinal 參數,將會列印系統的所有參數,就可以看到自己配置的參數或系統的默認參數了:

3)GC日誌:

之後的日誌就是每次垃圾回收時產生的日誌,每行日誌說明了這次GC的執行情況,例如第四行GC日誌:

詳細內容如下:

2020-09-25T13:00:41.631+0800:GC發生的時間點。
4.013:系統運行多久之後發生的GC,單位秒,這里就是系統運行 4.013 秒後發生了一次GC。
GC (Allocation Failure):說明了觸發GC的原因,這里是指對象分配失敗導致的GC。
PSYoungGen:指觸發的是年輕代的垃圾回收,使用的是 Parallel Scavenge 垃圾回收器。
419840K->20541K:對年輕代執行了一次GC,GC之前年輕代使用了 419840K,GC之後有 20541K 的對象活下來了。
(472064K):年輕代可用空間是 472064K,即 461 M,為什麼是461M呢?因為新生代大小為 512M,Eden 區占 409.6M,兩塊 Survivor 區各占 51.2M,所以年輕代的可用空間為 Eden+1個Survivor的大小,即460.8M,約為461M。
419840K->20573K:GC前整個堆內存使用了 419840K,GC之後堆內存使用了 20573K。
(996352K):整個堆的大小是 996352K,即 973M,其實就是年輕代的 461M + 老年代的 512 M
0.0118345 secs:本次GC耗費的時間
Times: user=0.00 sys=0.00, real=0.01 secs:本次GC耗費的時間
4)JVM退出時的GC情況:

程序結束運行後,還會列印一些日誌,就是第12行之後的日誌,這部分展示的是當前堆內存的使用情況:

詳細內容如下:

6. 查看所有JVM參數

java -XX:+PrintFlagsFinal -version > final.txt

java -XX:+PrintFlagsFinal:查看所有JVM參數啟動的初始值
java -XX:+PrintFlagFinal:查看所有JVM參數的最終值
java -XX:+PrintCommandLineFlags:查看那些已經被用戶或者JVM設置過的詳細的xx參數的名稱和值。

7. 怎麼查看Java(jvm)虛擬機的大小

由於java應用的允許依賴於JVM(虛擬機),相應的內存配置顯然也需要JVM來提供的,准備地說是通過/bin/java.exe的啟動命令參數來實現的。具體的配置項如下幾種:-XmxJavaHeap最大值(默認值為物理內存的1/4)-XmsJavaHeap初始值-XmnJavaHeapYoung區大小-Xss每個線程的Stack大小拓展,以下是幾種使用示例:1、命令下啟動應用並配置內存:java-Xmx128m-Xms64mTest2、eclipse內存配置:-vmargs-Xms40m-Xmx512m的配置信息,請自行搜索「jvm內存」。

8. 如何查看JVM的系統屬性

一、 原理簡介
我們獲取jvm系統屬性的時候,我們都是通過
System.getProperty(「paramName」),當我們再仔細看下System對象的時候,我們發現還有個getProperties方法。閱讀下說明,果然是返回當前JVM的系統屬性。
二、 編寫JSP
只需要把下面內容拷貝到jsp頁面中,並把該jsp放到應用中即可,具體內容如下:

<%
/*
列出當前系統中的參數
*/
%>
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="GBK" errorPage="../include/error.jsp"%>
<!------- IMPORTS BEGIN ------------>
<%@ page import="java.util.Properties" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.Map.Entry" %>
<!------- IMPORTS END ------------>

<!-- 頁面登錄信息,常量獲取信息-->

<%!boolean IS_DEBUG = false;%>

<%

//1.獲取參數

//2.許可權判斷

//3.邏輯操作
//獲取當前系統的內存情況
Runtime currRuntime = Runtime.getRuntime();
currRuntime.gc();
long nTotalMemory = currRuntime.totalMemory();
long nFreeMemoy = currRuntime.freeMemory();

//把單位從位元組轉化為兆
String sSystemTotalMemoy = (nTotalMemory/1024/1024) + "M";
String sFreeSystemMemoy = (nFreeMemoy/1024/1024) + "M";

%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>當前系統中的參數</title>
<style>
.td_bg_color{
background-color:#FFFFFF;
}
.td_padding_left{
padding-left:10px;
}
</style>
</head>

<body>
<table border="0" cellspacing="1" cellpadding="0" width="100%" style="background-color:#d1d6e9;">
<tr>
<td colspan="3">當前系統的中參數列表,即[System.getProperties()]獲取的值為</td>
</tr>
<tr>
<td width="60px">序號</td>
<td width="300px">名稱</td>
<td>值</td>
</tr>
<%
//列印出系統的屬性值
int nIndex = 0;
Properties properties = System.getProperties();
if(properties!=null){
Iterator iterator = properties.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry aEntry = (Entry) iterator.next();
if (aEntry == null) {
continue;
}
nIndex ++;
%>
<tr>
<td><%=nIndex%></td>
<td class="td_bg_color td_padding_left"><%=aEntry.getKey()%></td>
<td class="td_bg_color td_padding_left"><%=aEntry.getValue()%></td>
</tr>
<%
}//end while
}else{//end if
%>
<tr>
<td colspan="3">
<span style="margin-right:20px;">當前系統對象[System]中沒有屬性.</span>
</td>
</tr>
<%
}//end else
%>
<tr>
<td><%=nIndex++%></td>
<td class="td_bg_color td_padding_left">總共內存</td>
<td class="td_bg_color td_padding_left"><%=sSystemTotalMemoy%></td>
</tr>
<tr>
<td><%=nIndex++%></td>
<td class="td_bg_color td_padding_left">空閑內存</td>
<td class="td_bg_color td_padding_left"><%=sFreeSystemMemoy%></td>
</tr>
</table>
</body>
</html>

9. 如何查看JVM的擴展參數

可以通過以下方法查看正在運行的Java實例的JVM參數:
打開Windows任務管理器;
執行「查看」-> 「選擇列」命令,打開「選擇進程頁列」對話框;
勾選「命令行」和「PID」,單擊「確定」按鈕,保存更改;
通過「映像名稱」和「PID」列找到當前正在運行的Java實例,向右滾動,找到「命令行」列,查看當前正在運行的Java實例的命令行,即可查看其JVM參數。

熱點內容
php缺口 發布:2025-07-12 22:48:58 瀏覽:554
具有加密地址 發布:2025-07-12 22:38:39 瀏覽:157
弧AC3演算法 發布:2025-07-12 22:37:51 瀏覽:491
電腦伺服器連接財務軟體 發布:2025-07-12 22:15:16 瀏覽:355
安卓如何用應用的通訊錄 發布:2025-07-12 22:15:01 瀏覽:668
墨西哥訪問 發布:2025-07-12 22:14:11 瀏覽:682
排解壓力的經歷 發布:2025-07-12 21:58:43 瀏覽:96
微支付介面java 發布:2025-07-12 21:56:53 瀏覽:913
JAVA擴展 發布:2025-07-12 21:51:08 瀏覽:150
忘記華為賬號密碼如何更改 發布:2025-07-12 21:43:20 瀏覽:777