真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java代碼取進(jìn)程號,通過進(jìn)程號獲取進(jìn)程名

linux下用ps -ef |grep ,結(jié)果哪個是進(jìn)程號

root 13091 12287 0 07:20 pts/1 00:00:00 grep oscard中的第二列【13091】是進(jìn)程號。

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、周村網(wǎng)絡(luò)推廣、微信小程序開發(fā)、周村網(wǎng)絡(luò)營銷、周村企業(yè)策劃、周村品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供周村建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

ps命令將某個進(jìn)程顯示出來,LINUX下最常用的也是非常強(qiáng)大的進(jìn)程查看命令

grep命令是查找,全稱是Global Regular Expression Print,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有用戶。這是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。

中間的 | 是管道命令 是指ps命令與grep同時執(zhí)行

擴(kuò)展資料:

PS命令其中各項(xiàng)的內(nèi)容意思如下:

1、參數(shù)e: 顯示所有程序。

2、參數(shù)f:? 顯示UID,PPIP,C與STIME欄位

3、UID: 用戶ID、但輸出的是用戶名

4、PID:進(jìn)程的ID

5、PPID:父進(jìn)程ID

6、C: 進(jìn)程占用CPU的百分比

7、STIME : 進(jìn)程啟動到現(xiàn)在的時間

8、TTY :該進(jìn)程在那個終端上運(yùn)行,若與終端無關(guān),則顯示? 若為pts/0等,則表示由網(wǎng)絡(luò)連接主機(jī)進(jìn)程。

9、CMD:命令的名稱和參數(shù)

linux系統(tǒng)下用jps命令查看java進(jìn)程,提示process information unavailable是為什么?

一般kill進(jìn)程是這樣的:

比如你要?dú)⒌魌op進(jìn)程,

ps?-ef|grep?top?查看top進(jìn)程?因?yàn)轱@示出進(jìn)程數(shù)太多使用grep過濾,

kill?-9?殺掉top進(jìn)程?,

ps?-ef|grep?top查看top進(jìn)程有沒殺掉,如圖已殺掉

oraclejdk打的javacore

JAVACORE與HEAPDUMP生成大法 原創(chuàng)

2016-11-01 10:52:41

5點(diǎn)贊

Z.Virgil

碼齡10年

關(guān)注

Windows平臺:

ORACLE JDK:HOTSPOT

IBM JDK:V9

目錄

前言

JAVACORE篇:

Windows平臺:

ORACLE JDK:HOTSPOT

IBM JDK:V9

LINUX平臺: 

HEAPDUMP篇:

LINUX平臺:

前言

在項(xiàng)目上我們經(jīng)常要生成javacore和heapdump來進(jìn)行分析。這里總結(jié)一下我自己在項(xiàng)目上生成這兩個文件的方法。

JAVACORE篇:

JavaCore文件主要保存的是Java應(yīng)用各線程在某一時刻的運(yùn)行的位置,即JVM執(zhí)行到哪一個類、哪一個方法、哪一個行上。它是一個文本文件,打開后可以看到每一個線程的執(zhí)行棧,以stack trace的顯示。

通過對JavaCore文件的分析可以得到應(yīng)用是否“卡”在某一點(diǎn)上,即在某一點(diǎn)運(yùn)行的時間太長,例如數(shù)據(jù)庫查詢,長期得不到響應(yīng),最終導(dǎo)致系統(tǒng)崩潰等情況。

Windows平臺:

ORACLE JDK:HOTSPOT

1.jvisualvm工具

jvisualvm是sun的JDK中自帶的工具,在java_home/bin/jvisualvm.exe中就可以打開。

掛在到對應(yīng)的java進(jìn)程后,可以直接生javacore。

2.jstack工具

jstack為JDK自帶的命令行工具。

其中-l -r 可以顯示出詳細(xì)信息,鎖信息等。

3.sendsignal工具

sendsignal工具是老外開發(fā)的一個小工具,用來生成已知進(jìn)程號的java進(jìn)程的javacore。

附件中有具體工具。通過sendsignal.exe pid即可生成。

4.ctrl+break按鍵

在Windows上啟動程序的時候,可以直接在啟動進(jìn)程的窗口按組合鍵生成javacore。

然而由于NC涉及到兩個java進(jìn)程,一個小的導(dǎo)程序,一個是正式的程序。

所以用該方法只能生成引導(dǎo)程序的javacore??床坏缴a(chǎn)環(huán)境的實(shí)際快照。

Java如何殺死Windows系統(tǒng)下的進(jìn)程?

在java中有調(diào)用外部程序的類,Runtime.getRuntime().exec("./**.exe");此函數(shù)返回的是一個Process 對象,該對象在創(chuàng)建后,可以對它進(jìn)行 destroy () 殺掉子進(jìn)程、 waitFor () 導(dǎo)致當(dāng)前線程等待,如有必要,一直要等到由該 Process 對象表示的進(jìn)程已經(jīng)終止。 而你想要的屏蔽空格的問題,在批處理中可以把整個命令用雙引號包起來就可以避免了。

如何查看unix 的java內(nèi)存使用情況

jmap (linux下特有,也是很常用的一個命令)

觀察運(yùn)行中的jvm物理內(nèi)存的占用情況。

參數(shù)如下:

-heap :打印jvm heap的情況

-histo: 打印jvm heap的直方圖。其輸出信息包括類名,對象數(shù)量,對象占用大小。

-histo:live : 同上,但是只答應(yīng)存活對象的情況

-permstat: 打印permanent generation heap情況

命令使用:

jmap -heap 3409

可以觀察到New Generation(Eden Space,F(xiàn)rom Space,To Space),tenured generation,Perm Generation的內(nèi)存使用情況

輸出內(nèi)容:

jmap -histo 3409 | jmap -histo:live 3409

可以觀察heap中所有對象的情況(heap中所有生存的對象的情況)。包括對象數(shù)量和所占空間大小。

輸出內(nèi)容:

寫個腳本,可以很快把占用heap最大的對象找出來,對付內(nèi)存泄漏特別有效。

如果結(jié)果很多,可以用以下命令輸出到文本文件。

jmap -histo 3409 | jmap -histo:live 3409 a.txt

jinfo:可以輸出并修改運(yùn)行時的java 進(jìn)程的opts。

jps:與unix上的ps類似,用來顯示本地的java進(jìn)程,可以查看本地運(yùn)行著幾個java程序,并顯示他們的進(jìn)程號。

jstat:一個極強(qiáng)的監(jiān)視VM內(nèi)存工具。可以用來監(jiān)視VM內(nèi)存內(nèi)的各種堆和非堆的大小及其內(nèi)存使用量。

jmap:打印出某個java進(jìn)程(使用pid)內(nèi)存內(nèi)的所有'對象'的情況(如:產(chǎn)生那些對象,及其數(shù)量)。

jconsole:一個java GUI監(jiān)視工具,可以以圖表化的形式顯示各種數(shù)據(jù)。并可通過遠(yuǎn)程連接監(jiān)視遠(yuǎn)程的服務(wù)器VM。

詳細(xì):在使用這些工具前,先用JPS命令獲取當(dāng)前的每個JVM進(jìn)程號,然后選擇要查看的JVM。

jstat工具特別強(qiáng)大,有眾多的可選項(xiàng),詳細(xì)查看堆內(nèi)各個部分的使用量,以及加載類的數(shù)量。使用時,需加上查看進(jìn)程的進(jìn)程id,和所選參數(shù)。以下詳細(xì)介紹各個參數(shù)的意義。

jstat -class pid:顯示加載class的數(shù)量,及所占空間等信息。

jstat -compiler pid:顯示VM實(shí)時編譯的數(shù)量等信息。

jstat -gc pid:可以顯示gc的信息,查看gc的次數(shù),及時間。其中最后五項(xiàng),分別是young gc的次數(shù),young gc的時間,full gc的次數(shù),full gc的時間,gc的總時間。

jstat -gccapacity:可以顯示,VM內(nèi)存中三代(young,old,perm)對象的使用和占用大小,如:PGCMN顯示的是最小perm的內(nèi)存使用量,PGCMX顯示的是perm的內(nèi)存最大使用量,PGC是當(dāng)前新生成的perm內(nèi)存占用量,PC是但前perm內(nèi)存占用量。其他的可以根據(jù)這個類推, OC是old內(nèi)純的占用量。

jstat -gcnew pid:new對象的信息。

jstat -gcnewcapacity pid:new對象的信息及其占用量。

jstat -gcold pid:old對象的信息。

jstat -gcoldcapacity pid:old對象的信息及其占用量。

jstat -gcpermcapacity pid: perm對象的信息及其占用量。

jstat -util pid:統(tǒng)計gc信息統(tǒng)計。

jstat -printcompilation pid:當(dāng)前VM執(zhí)行的信息。

除了以上一個參數(shù)外,還可以同時加上 兩個數(shù)字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,還可以加上-h3每三行顯示一下標(biāo)題。

jmap是一個可以輸出所有內(nèi)存中對象的工具,甚至可以將VM 中的heap,以二進(jìn)制輸出成文本。

命令:jmap -dump:format=b,file=heap.bin

file:保存路徑及文件名

pid:進(jìn)程編號

?jmap -histo:live pid| less :堆中活動的對象以及大小

?jmap -heap pid : 查看堆的使用狀況信息

jinfo:的用處比較簡單,就是能輸出并修改運(yùn)行時的java進(jìn)程的運(yùn)行參數(shù)。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。

jconsole是一個用java寫的GUI程序,用來監(jiān)控VM,并可監(jiān)控遠(yuǎn)程的VM,非常易用,而且功能非常強(qiáng)。使用方法:命令行里打 jconsole,選則進(jìn)程就可以了。

JConsole中關(guān)于內(nèi)存分區(qū)的說明。

Eden Space (heap): 內(nèi)存最初從這個線程池分配給大部分對象。

Survivor Space (heap):用于保存在eden space內(nèi)存池中經(jīng)過垃圾回收后沒有被回收的對象。

Tenured Generation (heap):用于保持已經(jīng)在 survivor space內(nèi)存池中存在了一段時間的對象。

Permanent Generation (non-heap): 保存虛擬機(jī)自己的靜態(tài)(refective)數(shù)據(jù),例如類(class)和方法(method)對象。Java虛擬機(jī)共享這些類數(shù)據(jù)。這個區(qū)域被分割為只讀的和只寫的,

Code Cache (non-heap):HotSpot Java虛擬機(jī)包括一個用于編譯和保存本地代碼(native code)的內(nèi)存,叫做“代碼緩存區(qū)”(code cache)

?jstack ( 查看jvm線程運(yùn)行狀態(tài),是否有死鎖現(xiàn)象等等信息) : jstack pid : thread dump

?jstat -gcutil pid 1000 100 : 1000ms統(tǒng)計一次gc情況統(tǒng)計100次;

另外推薦一款查看jmap dump 的內(nèi)存對象工具 MemoryAnalyzer

javaserver64.exe是什么進(jìn)程

javaserver64.exe是java運(yùn)行時的進(jìn)程。因?yàn)楸镜匕惭b的64位的jdk,所以進(jìn)程中帶有64。

Java 進(jìn)程的建立方法:

在 JDK 中,與進(jìn)程有直接關(guān)系的類為 Java.lang.Process,它是一個抽象類。在 JDK 中也提供了一個實(shí)現(xiàn)該抽象類的 ProcessImpl 類,如果用戶創(chuàng)建了一個進(jìn)程,那么肯定會伴隨著一個新的 ProcessImpl 實(shí)例。同時和進(jìn)程創(chuàng)建密切相關(guān)的還有 ProcessBuilder,它是在 JDK1.5 中才開始出現(xiàn)的,相對于 Process 類來說,提供了便捷的配置新建進(jìn)程的環(huán)境,目錄以及是否合并錯誤流和輸出流的方式。

Java.lang.Runtime.exec 方法和 Java.lang.ProcessBuilder.start 方法都可以創(chuàng)建一個本地的進(jìn)程,然后返回代表這個進(jìn)程的 Java.lang.Process 引用。

Runtime.exec 方法建立一個本地進(jìn)程

該方法在 JDK1.5 中,可以接受 6 種不同形式的參數(shù)傳入。

Process exec(String command)

Process exec(String [] cmdarray)

Process exec(String [] cmdarrag, String [] envp)

Process exec(String [] cmdarrag, String [] envp, File dir)

Process exec(String cmd, String [] envp)

Process exec(String command, String [] envp, File dir)

他們主要的不同在于傳入命令參數(shù)的形式,提供的環(huán)境變量以及定義執(zhí)行目錄。

ProcessBuilder.start 方法來建立一個本地的進(jìn)程

如果希望在新創(chuàng)建的進(jìn)程中使用當(dāng)前的目錄和環(huán)境變量,則不需要任何配置,直接將命令行和參數(shù)傳入 ProcessBuilder 中,然后調(diào)用 start 方法,就可以獲得進(jìn)程的引用。

Process p = new ProcessBuilder("command", "param").start();

也可以先配置環(huán)境變量和工作目錄,然后創(chuàng)建進(jìn)程。

ProcessBuilder pb = new ProcessBuilder("command", "param1", "param2");

MapString, String env = pb.environment();

env.put("VAR", "Value");

pb.directory("Dir");

Process p = pb.start();

可以預(yù)先配置 ProcessBuilder 的屬性是通過 ProcessBuilder 創(chuàng)建進(jìn)程的最大優(yōu)點(diǎn)。而且可以在后面的使用中隨著需要去改變代碼中 pb 變量的屬性。如果后續(xù)代碼修改了其屬性,那么會影響到修改后用 start 方法創(chuàng)建的進(jìn)程,對修改之前創(chuàng)建的進(jìn)程實(shí)例沒有影響。

JVM 對進(jìn)程的實(shí)現(xiàn)

在 JDK 的代碼中,只提供了 ProcessImpl 類來實(shí)現(xiàn) Process 抽象類。其中引用了 native 的 create, close, waitfor, destory 和 exitValue 方法。在 Java 中,native 方法是依賴于操作系統(tǒng)平臺的本地方法,它的實(shí)現(xiàn)是用 C/C++ 等類似的底層語言實(shí)現(xiàn)。我們可以在 JVM 的源代碼中找到對應(yīng)的本地方法,然后對其進(jìn)行分析。JVM 對進(jìn)程的實(shí)現(xiàn)相對比較簡單,以 Windows 下的 JVM 為例。在 JVM 中,將 Java 中調(diào)用方法時的傳入的參數(shù)傳遞給操作系統(tǒng)對應(yīng)的方法來實(shí)現(xiàn)相應(yīng)的功能。


新聞標(biāo)題:java代碼取進(jìn)程號,通過進(jìn)程號獲取進(jìn)程名
文章網(wǎng)址:http://weahome.cn/article/hohpie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部