-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專(zhuān)題列表 > 正文
使用jconsole命令:監(jiān)視本地運(yùn)行的所有 Java 應(yīng)用程序,JConsole 可以連接到這些應(yīng)用程序。
使用jconsole PID命令:監(jiān)視指定PID的Java應(yīng)用程序。
- 獲取java PID的方法:通過(guò)任務(wù)管理器查看、通過(guò)Java提供的jps命令查看。遠(yuǎn)程
概述:顯示有關(guān) Java VM 和受監(jiān)視值的概述信息。
內(nèi)存:顯示有關(guān)內(nèi)存使用的信息。
線程:顯示有關(guān)線程使用的信息。
類(lèi):顯示有關(guān)類(lèi)加載的信息。
VM:顯示有關(guān) Java VM 的信息。
MBeans:顯示有關(guān) MBeans 的信息。
- 組成部分 概覽
伊甸園空間(堆):最初為大多數(shù)對(duì)象分配內(nèi)存的池。
幸存者空間(堆):包含在伊甸園空間垃圾回收中幸存下來(lái)的物體的池。
終身代(堆):包含在幸存者空間中存在一段時(shí)間的對(duì)象的池。
永久生成(非堆):包含虛擬機(jī)本身的所有反射數(shù)據(jù)的池,如類(lèi)和方法對(duì)象。使用類(lèi)數(shù)據(jù)共享的 Java VM,這一代分為只讀和讀寫(xiě)區(qū)域。
代碼緩存(非堆):HotSpotJava VM 還包括一個(gè)代碼緩存,其中包含用于編譯和存儲(chǔ)本機(jī)代碼的內(nèi)存。
- 堆和非堆內(nèi)存
堆內(nèi)存是Java VM為所有類(lèi)實(shí)例和數(shù)組分配內(nèi)存的運(yùn)行時(shí)數(shù)據(jù)區(qū)域。堆的大小可能是固定的或可變的。垃圾回收器是一個(gè)自動(dòng)內(nèi)存管理系統(tǒng),用于回收對(duì)象的堆內(nèi)存。
非堆內(nèi)存包括所有線程之間共享的方法區(qū)域和Java VM的內(nèi)部處理或優(yōu)化所需的內(nèi)存。它存儲(chǔ)每類(lèi)結(jié)構(gòu),如運(yùn)行時(shí)常量池、字段和方法數(shù)據(jù),以及方法和構(gòu)造函數(shù)的代碼。方法區(qū)域在邏輯上是堆的一部分,但是,根據(jù)實(shí)現(xiàn),Java VM 可能不會(huì)對(duì)它進(jìn)行垃圾回收或壓縮。與堆內(nèi)存一樣,方法區(qū)域可能為固定大小或可變大小。方法區(qū)域的內(nèi)存不需要連續(xù)。
- 內(nèi)存池和內(nèi)存管理器
內(nèi)存池表示Java VM管理的內(nèi)存區(qū)域。Java VM至少有一個(gè)內(nèi)存池,它可能會(huì)在執(zhí)行期間創(chuàng)建或刪除內(nèi)存池。內(nèi)存池可以屬于堆內(nèi)存或非堆內(nèi)存。
內(nèi)存管理器管理一個(gè)或多個(gè)內(nèi)存池。垃圾回收器是一種內(nèi)存管理器,負(fù)責(zé)回收不可到達(dá)的對(duì)象使用的內(nèi)存。Java VM可能具有一個(gè)或多個(gè)內(nèi)存管理器。它可以在執(zhí)行期間添加或刪除內(nèi)存管理器。內(nèi)存池可以由多個(gè)內(nèi)存管理器管理。
- 垃圾回收
它們創(chuàng)建許多壽命較短的對(duì)象,例如迭代器和局部變量。
它們創(chuàng)建一些壽命很長(zhǎng)的對(duì)象,例如高級(jí)持久對(duì)象。
- 線程
查找監(jiān)視器死鎖線程:檢測(cè)對(duì)象監(jiān)視器鎖上是否有任何線程死鎖。此操作返回死鎖線程指示的數(shù)組。
getThreadInfo:返回線程信息。這包括線程當(dāng)前被阻止的名稱、堆棧跟蹤和監(jiān)視器鎖(如果有)以及持有該鎖的線程以及線程爭(zhēng)用統(tǒng)計(jì)信息。
獲取ThreadCpu時(shí)間:返回給定線程消耗的 CPU 時(shí)間
class:顯示有關(guān)類(lèi)加載器行為的統(tǒng)計(jì)信息。
compiler:顯示有關(guān)Java HotSpot VM實(shí)時(shí)編譯器行為的統(tǒng)計(jì)信息。
gc:顯示有關(guān)垃圾回收堆行為的統(tǒng)計(jì)信息。
gccapacity:顯示有關(guān)幾代人容量及其相應(yīng)空間的統(tǒng)計(jì)信息。
gccause:顯示有關(guān)垃圾回收統(tǒng)計(jì)信息(與 相同)的摘要,以及最后和當(dāng)前(如果適用)垃圾回收事件的原因。-gcutil
gcnew:顯示新一代行為的統(tǒng)計(jì)信息。
gcnewcapacity:顯示有關(guān)新一代大小及其相應(yīng)空間的統(tǒng)計(jì)信息。
gcold:顯示有關(guān)舊一代和元空間統(tǒng)計(jì)信息行為的統(tǒng)計(jì)信息。
gcoldcapacity:顯示有關(guān)舊一代大小的統(tǒng)計(jì)信息。
gcmetacapacity:顯示有關(guān)元空間大小的統(tǒng)計(jì)信息。
gcutil:顯示有關(guān)垃圾回收統(tǒng)計(jì)信息的摘要。
printcompilation:顯示 Java 熱點(diǎn) VM 編譯方法統(tǒng)計(jì)信息。
-nr當(dāng)找不到現(xiàn)有的RMI注冊(cè)表時(shí),不嘗試使用jstatd進(jìn)程創(chuàng)建一個(gè)內(nèi)部的RMI注冊(cè)表。
-p port在指定的端口查找RMI注冊(cè)表。如果沒(méi)有找到,并且沒(méi)有指定-nr選項(xiàng),則在該端口自行創(chuàng)建一個(gè)內(nèi)部的RMI注冊(cè)表。
-n rminameRMI注冊(cè)表中綁定的RMI遠(yuǎn)程對(duì)象的名稱。默認(rèn)的名稱為JStatRemoteHost。如果多個(gè)jstatd服務(wù)器在同一主機(jī)上運(yùn)行,你可以通過(guò)指定該選項(xiàng)來(lái)讓每個(gè)服務(wù)器導(dǎo)出的RMI對(duì)象具有唯一的名稱。不管如何,這樣做需要將唯一的服務(wù)器名稱包含進(jìn)監(jiān)控客戶端的hostid和vmid字符串中。
-Joption將選項(xiàng)參數(shù)傳遞給被javac調(diào)用的java啟動(dòng)程序。例如,-J-Xms48m設(shè)置啟動(dòng)內(nèi)存為48 MB。使用-J將選項(xiàng)參數(shù)傳遞給執(zhí)行Java應(yīng)用程序的底層虛擬機(jī),這是一種常見(jiàn)慣例。
pid對(duì)應(yīng)jvm的進(jìn)程id
executable core產(chǎn)生core dump文件
[server-id@]remote server IP or hostname遠(yuǎn)程的ip或者h(yuǎn)ostname,server-id標(biāo)記服務(wù)的唯一性id
no option輸出全部的參數(shù)和系統(tǒng)屬性
-flag name輸出對(duì)應(yīng)名稱的參數(shù)
-flag [+|-]name開(kāi)啟或者關(guān)閉對(duì)應(yīng)名稱的參數(shù)
-flag name=value設(shè)定對(duì)應(yīng)名稱的參數(shù)
-flags輸出全部的參數(shù)
-sysprops輸出系統(tǒng)屬性
- 注意:jinfo雖然可以在java程序運(yùn)行時(shí)動(dòng)態(tài)地修改虛擬機(jī)參數(shù),但并不是所有的參數(shù)都支持動(dòng)態(tài)修改
built-in變量
it -- 當(dāng)前的迭代元素
index -- 當(dāng)前迭代元素的索引
array -- 被迭代的數(shù)組
built-in變量
lhs -- 左邊元素
rhs -- 右邊元素
pid:目標(biāo)進(jìn)程的PID,進(jìn)程編號(hào),可以采用ps -ef | grep java查看java進(jìn)程的PID;
executable:產(chǎn)生core dump的java可執(zhí)行程序;
core:將被打印信息的core dump文件;
remote-hostname-or-IP:遠(yuǎn)程debug服務(wù)的主機(jī)名或ip;
server-id:唯一id,假如一臺(tái)主機(jī)上多個(gè)遠(yuǎn)程debug服務(wù);
jmap -dump:[live,]format=b,file= PID:使用hprof二進(jìn)制形式,輸出jvm的heap內(nèi)容到文件
jmap -finalizerinfo PID:打印正等候回收的對(duì)象的信息
jmap -heap PID:打印heap的概要信息,GC使用的算法,heap(堆)的配置及JVM堆內(nèi)存的使用情況。
jmap -histo:live PID:打印每個(gè)class的實(shí)例數(shù)目,內(nèi)存占用,類(lèi)全名信息。VM的內(nèi)部類(lèi)名字開(kāi)頭會(huì)加上前綴”*”. 如果live子參數(shù)加上后,只統(tǒng)計(jì)活的對(duì)象數(shù)量.
jmap -permstat PID:打印classload和jvm heap長(zhǎng)久層的信息. 包含每個(gè)classloader的名字、活潑性、地址、父classloader和加載的class數(shù)量。另外,內(nèi)部String的數(shù)量和占用內(nèi)存數(shù)也會(huì)打印出來(lái)。
-F強(qiáng)迫.在pid沒(méi)有相應(yīng)的時(shí)候使用-dump或者-histo參數(shù)。在這個(gè)模式下,live子參數(shù)無(wú)效。
-h | -help打印輔助信息
-J傳遞參數(shù)給jmap啟動(dòng)的jvm.
- jstack
-F強(qiáng)制dump線程堆棧信息. 用于進(jìn)程hung住,jstack命令沒(méi)有響應(yīng)的情況
-m同時(shí)打印java和本地(native)線程棧信息,m是mixed mode的簡(jiǎn)寫(xiě)
-l打印鎖的額外信
- 作者:楚瑞濤 https://blog.csdn.net/cong____cong/article/details/106349866
無(wú)法創(chuàng)建虛擬機(jī)未找到文件(無(wú)法創(chuàng)建虛擬機(jī)未找到文件怎么解決)
大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于無(wú)法創(chuàng)建虛擬機(jī)未找到文件的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。
開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫(xiě)出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、在新建虛擬機(jī)時(shí)出現(xiàn)問(wèn)題?
JConsole
JConsole 圖形用戶界面是一種符合 Java 管理擴(kuò)展(JMX)規(guī)范的監(jiān)視工具。JConsole 使用 Java 虛擬機(jī) (Java VM) 的廣泛檢測(cè)來(lái)提供有關(guān)在 Java 平臺(tái)上運(yùn)行的應(yīng)用程序的性能和資源消耗的信息。
使用方法 本地
使用jsconsole hostName:portNum命令:hostName是運(yùn)行應(yīng)用程序的系統(tǒng)的名稱,portNum是您在啟動(dòng)Java VM時(shí)啟用 JMX 代理時(shí)指定的端口號(hào)。
使用service:jmx::命令:使用 JMX 服務(wù) URL 進(jìn)行連接。
內(nèi)容分析
將 JConsole 連接到應(yīng)用程序后,JConsole 由六個(gè)選項(xiàng)卡組成。
顯示有關(guān) CPU 使用情況、內(nèi)存使用情況、線程計(jì)數(shù)和在Java VM中加載的類(lèi)的圖形監(jiān)視信息。
提供執(zhí)行GC的操作,可以隨時(shí)點(diǎn)擊按鈕進(jìn)行垃圾回收
Java VM管理兩種類(lèi)型的內(nèi)存:堆內(nèi)存和非堆內(nèi)存,這兩種內(nèi)存都是在 Java VM 啟動(dòng)時(shí)創(chuàng)建的。
內(nèi)存池和內(nèi)存管理器是Java VM內(nèi)存系統(tǒng)的關(guān)鍵方面。
垃圾回收 (GC) 是Java VM釋放不再引用的對(duì)象占用的內(nèi)存的方式。通常認(rèn)為具有活動(dòng)引用為"活動(dòng)"且未引用(或無(wú)法訪問(wèn))對(duì)象的對(duì)象為"已死"。垃圾回收是釋放死對(duì)象使用的內(nèi)存的過(guò)程。GC 使用的算法和參數(shù)對(duì)性能有顯著影響。
Java hotspot VM垃圾回收器使用代數(shù) GC。生成 GC 利用大多數(shù)程序符合以下概括的觀察。
提供有關(guān)線程使用的信息。
顯示有關(guān)類(lèi)加載的信息。
提供有關(guān)Java VM的信息。
以通用方式顯示有關(guān)在平臺(tái) MBean 服務(wù)器注冊(cè)的所有 MBeans 的信息。MBeans 選項(xiàng)卡允許您訪問(wèn)平臺(tái) MXBean 檢測(cè)的完整集,包括在其他選項(xiàng)卡中不可見(jiàn)的儀器。此外,您還可以使用 MBeans 選項(xiàng)卡監(jiān)視和管理應(yīng)用程序的 MBeans。
列出目標(biāo)系統(tǒng)上已檢測(cè)的 Java 虛擬機(jī) (JVM)。
監(jiān)視 Java 虛擬機(jī) (JVM) 統(tǒng)計(jì)信息。
對(duì)Java應(yīng)用程序的資源和性能進(jìn)行實(shí)時(shí)的命令行的監(jiān)控,包括了對(duì)Heap size和垃圾回收狀況的監(jiān)控。
命令格式
jstat [-option] [PID]
option參數(shù)
1.jstat –class: 顯示加載class的數(shù)量,及所占空間等信息。
2.jstat -compiler顯示VM實(shí)時(shí)編譯的數(shù)量等信息。
3.jstat -gc: 可以顯示gc的信息,查看gc的次數(shù),及時(shí)間。
4.jstat -gccapacity:可以顯示,VM內(nèi)存中三代(young,old,perm)對(duì)象的使用和占用大小
5.jstat -gcutil:統(tǒng)計(jì)gc信息
6.jstat -gcnew:年輕代對(duì)象的信息。
7.jstat -gcnewcapacity: 年輕代對(duì)象的信息及其占用量。
8.jstat -gcold:old代對(duì)象的信息。
9.jstat -gcoldcapacity: old代對(duì)象的信息及其占用量。
10.jstat -gcpermcapacity: perm對(duì)象的信息及其占用量。
11.jstat -printcompilation:當(dāng)前VM執(zhí)行的信息。
監(jiān)視 Java 虛擬機(jī) (JVM),并使遠(yuǎn)程監(jiān)視工具能夠連接到 JVM
命令格式
jstatd -[option]
option
使用方法
1.在jdk的bin目錄下創(chuàng)建文件jstatd.all.policy
2.寫(xiě)入下面的安全配置
grant codebase "file:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/lib/tools.jar" {
permission java.security.AllPermission;
#此處寫(xiě)絕對(duì)路徑,主要是防止路徑錯(cuò)誤問(wèn)題,排查問(wèn)題,應(yīng)該寫(xiě)成相對(duì)路徑
3.啟動(dòng)jstatd
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=x.x.x.x &
4.使用jvisualvm工具遠(yuǎn)程連接,進(jìn)行監(jiān)控
jvisualvm
VisualVM,能夠監(jiān)控線程,內(nèi)存情況,查看方法的CPU時(shí)間和內(nèi)存中的對(duì) 象,已被GC的對(duì)象,反向查看分配的堆棧(如100個(gè)String對(duì)象分別由哪幾個(gè)對(duì)象分配出來(lái)的).
同時(shí)他還提供很多插件可以自己安裝,是一款不錯(cuò)的監(jiān)控分析工具。
故障排除工具 JInfo
可以用來(lái)查看正在運(yùn)行的 java 應(yīng)用程序的擴(kuò)展參數(shù),包括Java System屬性和JVM命令行參數(shù);也可以動(dòng)態(tài)的修改正在運(yùn)行的 JVM 一些參數(shù)。當(dāng)系統(tǒng)崩潰時(shí),jinfo可以從core文件里面知道崩潰的Java應(yīng)用程序的配置信息
命令格式
參數(shù)說(shuō)明
option
Javacore 概述
Javacore,也可以稱為“threaddump”或是“javadump”,它是 Java 提供的一種診斷特性,能夠提供一份可讀的當(dāng)前運(yùn)行的 JVM 中線程使用情況的快照。即在某個(gè)特定時(shí)刻,JVM 中有哪些線程在運(yùn)行,每個(gè)線程執(zhí)行到哪一個(gè)類(lèi),哪一個(gè)方法。應(yīng)用程序如果出現(xiàn)不可恢復(fù)的錯(cuò)誤或是內(nèi)存泄露,就會(huì)自動(dòng)觸發(fā) Javacore 的生成。
使用方法
1.jinfo pid:輸出當(dāng)前 jvm 進(jìn)程的全部參數(shù)和系統(tǒng)屬性
2.jinfo -flag name pid:輸出對(duì)應(yīng)名稱的參數(shù)使用該命令,可以查看指定的 jvm 參數(shù)的值。如:查看當(dāng)前 jvm 進(jìn)程是否開(kāi)啟打印 GC 日志。
3.jinfo -flag [+|-]name pid:開(kāi)啟或者關(guān)閉對(duì)應(yīng)名稱的參數(shù)
使用 jinfo 可以在不重啟虛擬機(jī)的情況下,可以動(dòng)態(tài)的修改 jvm 的參數(shù)。尤其在線上的環(huán)境特別有用。
4.jinfo -flag name=value pid:修改指定參數(shù)的值。
5.jinfo -flags pid:輸出全部的參數(shù)
6.jinfo -sysprops pid:輸出當(dāng)前 jvm 進(jìn)行的全部的系統(tǒng)屬性
jhat
主要是用來(lái)分析java堆的命令,可以將堆中的對(duì)象以html的形式顯示出來(lái),包括對(duì)象的數(shù)量,大小等等,并支持對(duì)象查詢語(yǔ)言。
1.使用jmap命令導(dǎo)出堆文件jmap -dump:live,file=a.log pid
也可以使用下面方式導(dǎo)出堆文件
1、使用jconsole選項(xiàng)通過(guò)HotSpotDiagnosticMXBean從運(yùn)行時(shí)獲得堆轉(zhuǎn)儲(chǔ)(生成dump文件)、
2、虛擬機(jī)啟動(dòng)時(shí)如果指定了-XX:+HeapDumpOnOutOfMemoryError選項(xiàng), 則在拋出OutOfMemoryError時(shí), 會(huì)自動(dòng)執(zhí)行堆轉(zhuǎn)儲(chǔ)。
3、使用hprof命令
2.使用jhat分析堆文件jhat -J-Xmx512M a1.log
3.查看分析的html頁(yè)面
http://ip:7000/jhat中的OQL(對(duì)象查詢語(yǔ)言)
如果需要根據(jù)某些條件來(lái)過(guò)濾或查詢堆的對(duì)象,這是可能的,可以在jhat的html頁(yè)面中執(zhí)行OQL,來(lái)查詢符合條件的對(duì)象
基本語(yǔ)法:
select
[from [instanceof] ]
[where ]
解釋?zhuān)?/p>
(1)class name是java類(lèi)的完全限定名,如:java.lang.String,java.util.ArrayList, C是char數(shù)組,java.io.File是java.io.File[]
(2)類(lèi)的完全限定名不足以唯一的辨識(shí)一個(gè)類(lèi),因?yàn)椴煌腃lassLoader載入的相同的類(lèi),它們?cè)趈vm中是不同類(lèi)型的
(3)instanceof表示也查詢某一個(gè)類(lèi)的子類(lèi),如果不明確instanceof,則只精確查詢class name指定的類(lèi)
(4)from和where子句都是可選的
(5)java域表示:obj.field_name;java數(shù)組表示:array[index]
舉例:
(1)查詢長(zhǎng)度大于100的字符串
select s from java.lang.String s where s.count > 100
(2)查詢長(zhǎng)度大于256的數(shù)組
select a from [I a where a.length > 256
(3)顯示匹配某一正則表達(dá)式的字符串
select a.value.toString() from java.lang.String s where /java/(s.value.toString())
(4)顯示所有文件對(duì)象的文件路徑
select file.path.value.toString() from java.io.File file
(5)顯示所有ClassLoader的類(lèi)名
select classof(cl).name from instanceof java.lang.ClassLoader cl
(6)通過(guò)引用查詢對(duì)象
select o from instanceof 0xd404d404 o
built-in對(duì)象 -- heap
(1)heap.findClass(class name) -- 找到類(lèi)
select heap.findClass("java.lang.String").superclass
(2)heap.findObject(object id) -- 找到對(duì)象
select heap.findObject("0xd404d404")
(3)heap.classes -- 所有類(lèi)的枚舉
select heap.classes
(4)heap.objects -- 所有對(duì)象的枚舉
select heap.objects("java.lang.String")
(5)heap.finalizables -- 等待垃圾收集的java對(duì)象的枚舉
(6)heap.livepaths -- 某一對(duì)象存活路徑
select heaplivepaths(s) from java.lang.String s
(7)heap.roots -- 堆根集的枚舉
辨識(shí)對(duì)象的函數(shù)
(1)classof(class name) -- 返回java對(duì)象的類(lèi)對(duì)象
select classof(cl).name from instanceof java.lang.ClassLoader cl
(2)identical(object1,object2) -- 返回是否兩個(gè)對(duì)象是同一個(gè)實(shí)例
select identical(heap.findClass("java.lang.String").name, heap.findClass("java.lang.String").name)
(3)objectid(object) -- 返回對(duì)象的id
select objectid(s) from java.lang.String s
(4)reachables -- 返回可從對(duì)象可到達(dá)的對(duì)象
select reachables(p) from java.util.Properties p -- 查詢從Properties對(duì)象可到達(dá)的對(duì)象
select reachables(u, "java.net.URL.handler") from java.net.URL u -- 查詢從URL對(duì)象可到達(dá)的對(duì)象,但不包括從URL.handler可到達(dá)的對(duì)象
(5)referrers(object) -- 返回引用某一對(duì)象的對(duì)象
select referrers(s) from java.lang.String s where s.count > 100
(6)referees(object) -- 返回某一對(duì)象引用的對(duì)象
select referees(s) from java.lang.String s where s.count > 100
(7)refers(object1,object2) -- 返回是否第一個(gè)對(duì)象引用第二個(gè)對(duì)象
select refers(heap.findObject("0xd4d4d4d4"),heap.findObject("0xe4e4e4e4"))
(8)root(object) -- 返回是否對(duì)象是根集的成員
select root(heap.findObject("0xd4d4d4d4"))
(9)sizeof(object) -- 返回對(duì)象的大小
select sizeof(o) from [I o
(10)toHtml(object) -- 返回對(duì)象的html格式
select "+ toHtml(o) + "" from java.lang.Object o
(11)選擇多值
select {name:t.name?t.name.toString():"null",thread:t} from instanceof java.lang.Thread t
數(shù)組、迭代器等函數(shù)
(1)concat(enumeration1,enumeration2) -- 將數(shù)組或枚舉進(jìn)行連接
select concat(referrers(p),referrers(p)) from java.util.Properties p
(2)contains(array, expression) -- 數(shù)組中元素是否滿足某表達(dá)式
select p from java.util.Properties where contains(referres(p), "classof(it).name == 'java.lang.Class'")
返回由java.lang.Class引用的java.util.Properties對(duì)象
(3)count(array, expression) -- 滿足某一條件的元素的數(shù)量
select count(heap.classes(), "/java.io./(it.name)")
(4)filter(array, expression) -- 過(guò)濾出滿足某一條件的元素
select filter(heap.classes(), "/java.io./(it.name)")
(5)length(array) -- 返回?cái)?shù)組長(zhǎng)度
select length(heap.classes())
(6)map(array,expression) -- 根據(jù)表達(dá)式對(duì)數(shù)組中的元素進(jìn)行轉(zhuǎn)換映射
select map(heap.classes(),"index + '-->' + toHtml(it)")
(7)max(array,expression) -- 最大值, min(array,expression)
select max(heap.objects("java.lang.String"),"lhs.count>rhs.count")
(8)sort(array,expression) -- 排序
select sort(heap.objects('[C'),'sizeof(lhs)-sizeof(rhs)')
(9)sum(array,expression) -- 求和
select sum(heap.objects('[C'),'sizeof(it)')
(10)toArray(array) -- 返回?cái)?shù)組
(11)unique(array) -- 唯一化數(shù)組
jmap
打印進(jìn)程、核心文件或遠(yuǎn)程調(diào)試服務(wù)器的共享對(duì)象內(nèi)存映射或堆內(nèi)存詳細(xì)信息。
jmap [option]
(to connect to running process) 連接到正在運(yùn)行的進(jìn)程
jmap [option]
(to connect to a core file) 連接到核心文件
jmap [option] [server_id@]
(to connect to remote debug server) 連接到遠(yuǎn)程調(diào)試服務(wù)
option
使用方法
jstack命令主要用于調(diào)試java程序運(yùn)行過(guò)程中的線程堆棧信息,可以用于檢測(cè)死鎖,進(jìn)程耗用cpu過(guò)高報(bào)警問(wèn)題的排查。jstack命令會(huì)打印出所有的線程,包括用戶自己?jiǎn)?dòng)的線程和jvm后臺(tái)線程。
命令格式
jstack -[option] pid
option
公眾號(hào)“Java精選”所發(fā)表內(nèi)容注明來(lái)源的,版權(quán)歸原出處所有(無(wú)法查證版權(quán)的或者未注明出處的均來(lái)自網(wǎng)絡(luò),系轉(zhuǎn)載,轉(zhuǎn)載的目的在于傳遞更多信息,版權(quán)屬于原作者。如有侵權(quán),請(qǐng)聯(lián)系,筆者會(huì)第一時(shí)間刪除處理!
最近有很多人問(wèn),有沒(méi)有讀者交流群!加入方式很簡(jiǎn)單,公眾號(hào)Java精選,回復(fù)“加群”,即可入群!
(微信小程序):3000+道面試題,包含Java基礎(chǔ)、并發(fā)、JVM、線程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架構(gòu)設(shè)計(jì)等,在線隨時(shí)刷題!
------ 特別推薦 ------
特別推薦:專(zhuān)注分享最前沿的技術(shù)與資訊,為彎道超車(chē)做好準(zhǔn)備及各種開(kāi)源項(xiàng)目與高效率軟件的公眾號(hào),「大咖筆記」,專(zhuān)注挖掘好東西,非常值得大家關(guān)注。點(diǎn)擊下方公眾號(hào)卡片關(guān)注。
文章有幫助的話,在看,轉(zhuǎn)發(fā)吧!
二、新建虛擬機(jī)報(bào)錯(cuò),錯(cuò)誤Unable to create a new virtual machine: No permission to perform this operation
雖然用kvm能成功安裝好XP,linux 但是虛擬出來(lái)的系統(tǒng),由于是橋接的物理網(wǎng)卡,暫時(shí)有點(diǎn)點(diǎn)問(wèn)題,可以上網(wǎng),也可以ping通外網(wǎng),就是內(nèi)網(wǎng)互ping暫時(shí)沒(méi)找到解決辦法。原來(lái)一直用VM搭建虛擬環(huán)境,索性就裝了個(gè)VM,出現(xiàn)Unable to create a new virtual machine: No permission to perform this operat,google翻譯了下,原來(lái)是無(wú)法創(chuàng)建虛擬機(jī)。直接進(jìn)入切換到root桌面,找到你要把虛擬鏡像安裝的文件夾,然后右擊,權(quán)限-》在群組那選擇可讀可寫(xiě)(又名讀寫(xiě)),然后在切換到普通用戶。OK,問(wèn)題解決。
沒(méi)有安裝桌面的,思路:把普通用戶加入到root群組去,然后把虛擬鏡像安裝的文件夾權(quán)限設(shè)置為750或者777,OK 問(wèn)題解決。
(摘自網(wǎng)上,希望有所幫助)
三、eclipse 無(wú)法啟動(dòng) 無(wú)法創(chuàng)建虛擬機(jī) 怎么解決?
解決方法:
打開(kāi)eclipse目錄下的eclipse.ini文件,修改–launcher.XXMaxPermSize屬性,其中此屬性有兩處
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
將其值改為128m即可,如下。(事實(shí)上,只改后面一個(gè)就可以,啟動(dòng)eclipse時(shí)以后者為準(zhǔn))
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
128M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
128m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
然后就可以成功啟動(dòng)。
四、無(wú)法創(chuàng)建分頁(yè)文件 (F:\虛擬機(jī)程序\Windows XP Professional.vmem) 為 256 MB: 系統(tǒng)找不到指定的文件。
路徑中不能有中文,修改為其他英文路徑就可以了。
以上就是關(guān)于無(wú)法創(chuàng)建虛擬機(jī)未找到文件相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
抖音來(lái)客門(mén)店認(rèn)領(lǐng)無(wú)法入駐(抖音來(lái)客門(mén)店認(rèn)領(lǐng)無(wú)法入駐怎么回事)
磁盤(pán)采用gpt分區(qū)無(wú)法安裝系統(tǒng)盤(pán)(win10磁盤(pán)采用gpt分區(qū) 無(wú)法安裝系統(tǒng)盤(pán))
猜你喜歡
中國(guó)的地形特點(diǎn)(中國(guó)的地形特點(diǎn)決定了我國(guó)河流流向大多是)
北京seo搜索引擎優(yōu)化(北京seo搜索引擎優(yōu)化服務(wù))
國(guó)外服務(wù)器(國(guó)外服務(wù)器多少錢(qián)一個(gè)月)
萬(wàn)古無(wú)敵天帝系統(tǒng)(最強(qiáng)九帝系統(tǒng))
qq發(fā)卡平臺(tái)全自動(dòng)發(fā)貨(qq發(fā)卡平臺(tái)全自動(dòng)發(fā)貨是真的嗎)
問(wèn)大家
抖音國(guó)外直播出現(xiàn)“所在的地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”解決
抖音國(guó)外直播出現(xiàn)“所在的地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”
抖音開(kāi)直播提示“所在地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”解決辦法
抖音國(guó)外直播出現(xiàn)“所在的地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”
抖音在海外怎么開(kāi)直播?抖音所在地區(qū)無(wú)法直播解決辦法?
抖音開(kāi)直播提示“所在地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”解決辦法
抖音國(guó)外直播出現(xiàn)“所在的地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”
抖音開(kāi)直播提示“所在地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”解決辦法?
抖音“所在的地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”解決方法?
抖音國(guó)外直播出現(xiàn)“所在的地區(qū)暫時(shí)無(wú)法提供開(kāi)播服務(wù)”解決
山東濟(jì)南真正的婚姻介紹所哪家好?婚介公司有多少是靠譜的?